当我运行此查询时:
String queryF = "SELECT c FROM CatRoles c WHERE c.rol IN :roles OR :roles IS NULL)";
Query q = entityManager.createQuery(queryF);
List<String> lstRoles = Arrays.asList("EMPLEADO","ADMINISTRADOR");
q.setParameter("roles", lstRoles);
List<CatRoles> actual = q.getResultList();
引发了以下错误:
引起:org.hibernate.exception.DataException:无法提取ResultSet 在org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:135)[hibernate-core-4.2.14.SP1-redhat-1.jar:4.2.14.SP1-redhat-1]
但是当我在Oracle SQL开发人员中运行查询时效果很好,查询的目标是当我发送一个角色列表时,只部署那些想要在部署完整目录时发送null的人。
答案 0 :(得分:0)
我认为您希望查询为:
... OR c.rol is NULL
而不是
... or :roles is NULL