在本机SQL查询中使用IN子句
发布于 2021-02-01 12:38:14
我们正在尝试为本地sql查询动态生成IN子句以返回JPA实体。Hibernate是我们的JPA提供程序。我们的代码看起来像这样。
@NamedQuery(
name="fooQuery",
queryString="select f from Foo f where f.status in (?1)"
)
....
Query q = entityManager.createNamedQuery("fooQuery");
q.setParameter(1, "('NEW','OLD')");
return q.getResultList();
这是行不通的,in子句无法识别通过这种方式传入的任何值。有谁知道解决这个问题的方法吗?
关注者
0
被浏览
103
1 个回答
-
在您的情况下,JPA支持命名列表参数:
@NamedQuery( name="fooQuery", queryString="select f from Foo f where f.status in (?1)" ) Query q = entityManager.createNamedQuery("fooQuery"); List<String> listParameter = new ArrayList<>(); listParameter.add("NEW"); listParameter.add("OLD"); q.setParameter(1, listParameter); return q.getResultList();
推荐阅读
-
在SQL查询中使用WHERE子句指出的是( )。
2022-05-13 关注 0 浏览15 1答案
-
在SQL查询中使用WHERE子句指出的是( )。
2022-05-13 关注 0 浏览16 1答案
-
SQL查询中使用WHere子句指出的是
2022-03-03 关注 0 浏览26 1答案
-
在SQL的SELECT查询中使用 【9】______ 子句消除查询结果中的重复记录。
2022-05-11 关注 0 浏览29 1答案
-
在更新中使用子查询总是需要在where子句中使用子查询?
2021-05-10 关注 0 浏览118 1答案
-
在Hibernate中使用本机SQL批量插入
2021-02-01 关注 0 浏览73 1答案
-
在where子句中使用like命名查询
2021-01-30 关注 0 浏览114 1答案
-
SQL Server-在WHERE子句中使用CASE
2021-04-15 关注 0 浏览131 1答案
-
在SQL查询中使用聚合函数
2021-06-15 关注 0 浏览154 1答案
-
在ORM查询中使用原始SQL
2021-01-29 关注 0 浏览112 1答案