Mybatis 逆向工程对 text 的特殊处理
目录
Mybatis 对 Mysql 中 text 类型的特殊处理
- 昨天晚上在做 cms 的 crud 的时候遇到的问题,编辑的时候不回显内容,然后 f12 看了下响应的 json 里面 content 也为 null,然后去 service 里面把那个 pojo 加了 toString 把几条数据直接打印出来 因为用了分页然后打印出来的也并不是数据
(下次再来探究分页插件) 然后注释掉在打印发现还是没有然后我试了下单独查询,根据主键查询查出来的居然用有!!!这就很奇怪了。我当时就以为是 byexample 的 mapper 有问题 哈哈哈~~ 其实还是自己框架学的不好的问题
public EasyUIJsonResult listContent(long categoryId,int page,int rows) {
EasyUIJsonResult result=new EasyUIJsonResult();
//测试过程中发现 PageHelper 的一些问题 等下再来研究
//PageHelper.startPage(page, rows);
TbContentExample example =new TbContentExample();
example.createCriteria().andCategoryIdEqualTo(categoryId);
List<TbContent> contents = dao.selectByExample(example);
PageInfo<TbContent> info=new PageInfo<>(contents);
//加上 PageHelper 后这里打印出来的就不是 contents 对象了就是 Page 对象
//而且查出来的数据里面 content 为 null (数据库中有 猜想可能是逆向工程有问题);
System.out.println(contents);
//测试下单独查询 主键查询没问题 取的到 content
System.out.println(dao.selectByPrimaryKey((long)42));
//单独测试下只查一个 也没有
TbContentExample example2 =new TbContentExample();
Criteria criteria2 = example2.createCriteria();
criteria2.andCategoryIdEqualTo((long)90);
System.out.println(dao.selectByExample(example2 ));
result.setTotal(info.getTotal());
result.setRows(contents);
return result;
}
- 然后就面向百度了一波,还真就查到了遇到跟我一样的问题 同道中人 selectByExampleWithBLOBs 用这个方法就可以了 看名字就知道更这个有关哈哈哈 然后就愉快的解决了!image
- 不仅仅是 select update 也有这个方法
public interface TbContentMapper {
int countByExample(TbContentExample example);
int deleteByExample(TbContentExample example);
int deleteByPrimaryKey(Long id);
int insert(TbContent record);
int insertSelective(TbContent record);
List<TbContent> selectByExampleWithBLOBs(TbContentExample example);
List<TbContent> selectByExample(TbContentExample example);
TbContent selectByPrimaryKey(Long id);
int updateByExampleSelective(@Param("record") TbContent record, @Param("example") TbContentExample example);
int updateByExampleWithBLOBs(@Param("record") TbContent record, @Param("example") TbContentExample example);
int updateByExample(@Param("record") TbContent record, @Param("example") TbContentExample example);
int updateByPrimaryKeySelective(TbContent record);
int updateByPrimaryKeyWithBLOBs(TbContent record);
int updateByPrimaryKey(TbContent record);
}