【发布时间】:2020-03-13 13:40:51
【问题描述】:
我基于某些搜索条件从数据库获取数据的 Spring 数据 JPA 代码不起作用。我的数据库是 SQL Server 2012,相同的查询似乎适用于 MYSQL DB。
代码示例:
@Query(value = "select * from entity e where e.emp_id=:#{#mySearchCriteria.empId} and ((:#{#mySearchCriteria.deptIds} is null or :#{#mySearchCriteria.deptIds} ='') or e.dept_id in (:#{#mySearchCriteria.deptIds})) ", nativeQuery = true)
public List<Entity> search(@Param("mySearchCriteria") MySearchCriteria mySearchCriteria);
如果 list mySearchCriteria.deptIds 有多个值 - 它不起作用(它实际上将其转换为错误的查询。任何线索?提前致谢。
注意:deptIds 的数据类型是整数列表
【问题讨论】:
-
它会产生什么错误信息? mySearchCriteria.deptIds 字段的类型是什么?
-
@Woworks 它实际上是整数列表,错误日志显示 - 结果未转换为布尔值
-
日志中的确切错误消息是:“消息”:“在预期条件的上下文中指定的非布尔类型的表达式,靠近 ','。”
标签: spring spring-boot sql-server-2012 spring-data-jpa spring-data