【发布时间】:2016-10-16 15:17:27
【问题描述】:
我有一个带有“名称”列的“角色”表。我需要获取名称为“role1”或“role2”的所有角色。角色存储库方法如下所示:
Set<Role> findByNameIsIn(Set<String> roleNames);
我的数据库只包含“role1”。生成的请求如下所示:
SELECT ID, NAME FROM ROLE WHERE (NAME IN ((?,?)))
bind => [role1, role2]
请注意参数周围的双括号。结果集为空。当我通过 h2 控制台手动尝试此查询时 - 也没有结果。以下查询有效:
SELECT ID, NAME FROM ROLE WHERE (NAME IN ('role1', 'role2'))
我的集合正好包含两个元素。应支持集合作为参数类型。见:https://dzone.com/refcardz/core-spring-data
最后是一个问题:我错过了什么?
【问题讨论】:
-
您使用的是哪个持久性提供程序和数据库?报告了该区域中各种错误的几个错误。
-
EclipseLink + H2 嵌入式数据库
-
自 2011 年起中断…bugs.eclipse.org/bugs/show_bug.cgi?id=349477
标签: java spring spring-mvc spring-data spring-data-jpa