gpt4 book ai didi

sql - 在 native sql 查询中使用 IN 子句

转载 作者:行者123 更新时间:2023-12-03 23:31:26 25 4
gpt4 key购买 nike

我们正在尝试为 native 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 子句无法识别通过这种方式传入的任何值。有谁知道这个问题的解决方案?

最佳答案

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 - 在 native sql 查询中使用 IN 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/831990/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com