赞
踩
实体类字段receiver定义为String类型
MySQL中为blob类型,迁移到dm8同样为blob类型。
但是使用dm8数据库执行查询列表方法时,语法冲突
出现-6105: 第1 行附近出现错误:
- LambdaQueryWrapper<PfMessageReal> query = new LambdaQueryWrapper<PfMessageReal>()
- .eq(PfMessageReal::getBusinessType,businessType)
- .eq(PfMessageReal::getReceiver,pfUser.getAccount());
- List<PfMessageReal> messageReal = this.baseMapper.selectList(query);
原因:
在Mysql中blob可以使用String类型当作查询条件
SELECT id FROM message WHERE receiver = #{receiver}
但是在dm8中不可以用String类型的查询条件进行查询,需要转换类型
SELECT ID FROM MESSAGE WHERE dbms_lob.substr(RECEIVER) = #{receiver}
dbms_lob.substr函数是Oracle数据库提供的一个函数,用于从LOB(Large Object)类型的列中截取子字符串。在这个查询语句中,它被用来处理RECEIVER列的值,将其转化为可比较的字符串形式,然后与给定的#{receiver}值进行比较。
未待完续。。。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。