JPA单表存储List与模糊查询_全球微动态
(资料图片仅供参考)
当需要在数据库中存储简单的List对象,如List
使用自定义注解:
@Convert(converter = JpaConverterListJso.class)
自定义转换器
public class JpaConverterListJso implements AttributeConverter
这样即存储时将简单List对象转换为JSON字符串存入数据库,又能将JSON字符串转为简单List对象取出但是使用以上功能后,会使得JPA的模糊查询使用Like查询出现问题,该字段传入参数时会被JPA自动加上双引号。这是由Converter导致的。
为了解决模糊的问题。可以使用如下操作:
expressions.add(criteriaBuilder.greaterThan(criteriaBuilder.locate(root.get("station"), "\"" + station + "\""), 0));
该操作中,criteriaBuilder.locate将需要查询的条件传入取得该字段中查询条件的坐标,如果查询到坐标,即返回大于等于1的坐标位置。然后使用criteriaBuilder.greaterThan判断坐标是否大于0,如果大于0即为找到该查询条件。
上一篇:世界消息!6月8日焦点图
下一篇:最后一页
X 关闭
-
【天天快播报】复兴号和和谐号的区别_复兴号和普通高铁的区别
2023-06-08
-
马斯克卸任 推特女掌门正式接棒
2023-06-07
-
高考首日,河北省公安交警驻点全力护航
2023-06-07
-
足金现在多少一克(2023年6月7日)
2023-06-07
-
当前观察:天津市2023年“文化和自然遗产日”非遗系列活动现场发布暨启动仪式举行
2023-06-07