gpt4 book ai didi

java - EJB-QL问题我如何将列表设置为参数,例如: select o from table where id in (List listOfIds)

转载 作者:行者123 更新时间:2023-11-30 05:09:08 25 4
gpt4 key购买 nike

在 EJB-QL 中,我尝试创建如下查询:

SELECT * 

FROM table

WHERE id IN ([id1],[id2],[id3],...);

这是对 oracle 或 mysql 的正常查询,但如何使 EJB-QL 将参数设置为列表?

SELECT o

FROM ClassName

WHERE ClassNameId IN (List<Long> listOfIds);

有办法做到这一点吗?

更重要的是,这比为列表中的每个 id 运行单独的查询更有效吗?

如有任何建议,我们将不胜感激。

编辑:为了清楚起见,我尝试运行一个查询以根据 id 列表返回多行(不是整个表,不是另一个表的内容,而是任意 id 列表) )。我希望能够运行此查询一次,而不是多次运行普通的查找查询(针对列表中的每个 id 运行一次)。

谢谢

吉姆

最佳答案

String queryStr = "select o from ClassName o where o.classNameId IN :ids";

Query query = entityManager.createQuery("queryStr");
List<Long> listOfIds = getIds();
query.setParameter("ids", listOfIds);

List<ClassName> classNameList = (List<ClassName>) query.getResultList();

关于java - EJB-QL问题我如何将列表设置为参数,例如: select o from table where id in (List<Long> listOfIds),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4079852/

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