myibatis的坑--text类型的字段查询缺失

问题:某个字段的类型为text(或者mediumtext,longtext)的时候,用selectByQuery语句查询出来的结果不包含该字段内容。

myibatis 用mybatis-generator自动生成以后,text,mediumtext,longtext跟普通的varchar,char类型的字段会有区别。

如下:

  <resultMap id="BaseResultMap" >

    <id column="id" property="id" jdbcType="BIGINT" />
    <result column="gmt_create" property="gmtCreate" jdbcType="TIMESTAMP" />
    <result column="gmt_modified" property="gmtModified" jdbcType="TIMESTAMP" />

  </resultMap>
  <resultMap id="ResultMapWithBLOBs" extends="BaseResultMap" >

    <result column="job_content" property="jobContent" jdbcType="LONGVARCHAR" />
  </resultMap>

不单单只有“BaseResultMap”,还有一个“ResultMapWithBLOBs”,

后面在查询的时候,有两个select,一个是只包含BaseResultMap的selectByQuery,另外一个是包含BaseResultMap和ResultMapWithBLOBs的selectByQueryWithBLOBs。

结论:如果所有内容都想查询,就要用selectByQueryWithBLOBs,默认的selectByQuery会有问题。

时间: 2024-08-24 10:48:41

myibatis的坑--text类型的字段查询缺失的相关文章

使用JPA储存Text类型的时候 出现乱码的问题

以前遇到这类问题第一个反应就是觉得客户端和服务端的编码不一样导致的.所以一开始也是那么认为的.以为我们项目使用的是pgsql,默认的就是utf-8,然后我们使用了字符也是utf-8,并且还有一个问题就是说一般的string类型(数据库映射为varchar)显示的是正常的,然后我就有些抓不着头脑了,去google和百度都没有找到合适的答案.都没有解决. 问题是我们在JPA项目中使用了@Lob注解.这个注解的解释是这样的: @Lob 注解属性将被持久化为 Blog 或 Clob 类型. Clob(C

【MySQL】使用Length和Cast函数计算TEXT类型字段的长度

背景: 前段时间,业务需要,为了快速让解析的Excel入库,所以把不是很确定的字段全部设置成了TEXT. 今天需要进行表结构优化,把字段长度控制在合适的范围,并尽量不使用TEXT类型. -- 计算长度select LENGTH(CAST(fileName AS CHAR)) from files; select MAX(LENGTH(CAST(fileName AS CHAR))) from files; select LENGTH(CAST(fileName AS CHAR)) as le f

mysql怎么储存长字符-----MySQL text与blob字段类型的不同之处

字段类型选text型 或blog 区别见: 以下的文章主要介绍的是MySQL text与blob字段类型的不同之处的比较,同时本文也有对MySQL text与blob字段类型的实际应用的介绍,如果你对MySQL text与blob字段类型相关的实际操作有兴趣的话,你就可以对以下的文章点击观看了. 1. blob是二进制大对象,可以容纳可变量数量的数据,其中blob分为4中类型:TINYBLOB,BLOB,mediumblob和LongBlob,他们容纳的长度是不同的. Text同样也分为四种类型

Mysql text类型字段存储提示错误信息 String data,right truncated:1406 Data too long for column &#39;content&#39; at row 1

String data,right truncated:1406 Data too long for column 'content' at row 1 当Mysql提示如下时: 1.首先查看存入的文本内容的大小,根据内容大小设置类型 如果超出,根据大小进行更换类型 2.如果还是超出那可能是Mysql根据配置文件限制Server接受数据包大小,有时候大的插入和更新会受max_allowed_packet参数限制,导致写入或者更新失败. 查看目前配置: 代码如下: 以上说明目前的配置是:60 M

Oracle数据库里面查询字符串类型的字段不为空和为空的SQL语句:

一:查询字符串类型的字段的值不为空的SQL: [sql] view plaincopy select * from TB_CMS_FLGTINFO_A t where (t.fsta is not null and t.fsta <>' '); 主:上面的TB_CMS_FLGTINFO_A是表名,fsta是表中的字段 二:查询字符串类型的字段的值为空的SQL: [sql] view plaincopy select * from TB_CMS_FLGTINFO_A t where (t.fst

数据库表中存在Text类型的属性时,写sql语句时需要注意喽!

之前,习惯性地写查询语句时,查询条件用“=”判断.今天写程序的时候,查询时突然报了一个错误:数据类型text 和varchar 在equal to 运算符中不兼容.查看了一下数据库发现,其中有一个属性(例如Name:)是Text类型的,这时查询条件Name='张三' 就会报错.查找相关资料发现Text类型的属性不能用“=”判断相等,因为它不支持,可以用“like”判断,例如:Name like '张三' . 另外还有几点需要注意: (1):Text字段类型不能直接用replace函数来替换,必须

着重基础之—MySql Blob类型和Text类型

着重基础之—MySql Blob类型和Text类型—二进制存储 在经历了几个Java项目后,遇到了一些问题,在解决问题中体会到基础需要不断的回顾与巩固. 最近做的项目中,提供给接口调用方数据同步接口,传输的数据格式是Json串.由于json串的结构层级较多,数据量也不少.在设计数据库的时候,选择了Blob类型做为字段类型.一切的一切就打这开始,同步服务正常运作,但是问题慢慢的暴露了出来,客户端在暂时我所提供的数据的时候,中文总是显示乱码,乱码,乱码,一直乱码. 问题的分析路径 1.查看了数据库连

mysql数据的类型以及字段的约束问题【重点】

1.确保mysql字段[包括库名.表名]的正确,必要使用反引号 2.校对集指的是字符之间的关系[对字段值的字符处理]校对集依赖于字符集校对集:在某个字符集下面,这些字符的排序关系称之为校对集[对字段进行某种排序处理] 在phpmyadmin中设置库的编码,使用的ci结尾的编码就是使用了校对集[默认是使用的,但是其实校对集基本用不上] _bin:二进制编码层面直接比较_ci:忽略大小写_cs:不忽略大小写[http://www.jb51.net/article/30865.htm] 3.整型介绍s

SQL SERVER 如果判断text类型数据不为空

一个字段Remark的数据类型设置先设置为varcharr(255),后来考虑到扩展性需要将其定义为TEXT类型,但是SQL 语句报错.      SQL 语句:      SELECT * FROM TABLE  WHERE  ISNULL(Remark,'')<>''       报错信息:数据类型 text 和 varchar 在 not equal to 运算符中不兼容.      解决办法:使用datalength(字段名)函数                         SEL