java - 将 HQL 'in' 限制转换为条件

标签 java hibernate hql criteria

我有这样的查询:

Query query = session.createQuery("from table1 c where c.colummewhatever =:value and (select p.colummewhatever from table2 p where c.fkidcolumme=p.idcolumme) in (:listPColummewhatever) ");

有没有办法将 in 限制转换为 Criteria

最佳答案

在我看来,可以使用简单的连接重写此查询:

from Table1 c inner join c.table2 p
where c.colummewhatever =:value 
and p.colummewhatever in (:listPColummewhatever)

在 Criteria 中翻译这个 HQL 查询现在更容易了。

这当然假设您在 Table1 和 Table2 之间有一个关联,但您应该有一个。

关于java - 将 HQL 'in' 限制转换为条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7308047/

相关文章:

java - 在java中,当将带有空格的char数组转换为字符串时,如何删除该字符串中的空格?

java - 为什么不应该声明一个受继承保护的变量?

java - JPA Hibernate::实体的继承,带有附加的 OneToMany 列表

java - 如何在 Hibernate 中进行基于自定义查询的集合映射?

sql - 帮我写一个sql语句来做这样的事情

mysql - HQL:两个值之间的最大值

java - HQL hibernate 中的 "show databases"

java - 卡在 javafx.graphics 上不会将 com.sun.javafx.sg.prism 导出到未命名模块

java - Mockito Junit test coverage 去除单元测试覆盖

java - EJB 查询语言与 HQL