如何使用 Hibernate Criteria 连接两个具有 OneToMany 关系的表

Posted

技术标签:

【中文标题】如何使用 Hibernate Criteria 连接两个具有 OneToMany 关系的表【英文标题】:How to use Hibernate Criteria for joining two tables with OneToMany relation 【发布时间】:2011-03-15 14:34:48 【问题描述】:

我有两个表,除非我有循环依赖项,否则我无法在它们的实体中实现映射 @OneToMany。我想创建一个 Hibernate Criteria,这样我就可以在 ids 字段和限制上加入这个表。但是,我有一个 sql 查询,它给出了我正在寻找的结果,我不明白如何实现标准。

具有共享 id 的表:

|  Table A  | Table B |
|id         | id      |
|languageId | code    |
|comment    |         |

SQL 查询:

选择 a.id、a.languageId、a.comment、 b.code from TableA a join TableB b on a.id=b.id

有人可以帮我写一下 Hibernate Criteria 吗?

提前谢谢你, L.

【问题讨论】:

【参考方案1】:

你不能这样做 - Hibernate Criteria 不支持在任意条件下加入。

你必须使用HQL查询(它也不支持任意条件的JOIN语法,但你可以使用旧式语法):

SELECT a, b FROM A a, B b WHERE a.id = b.id

【讨论】:

以上是关于如何使用 Hibernate Criteria 连接两个具有 OneToMany 关系的表的主要内容,如果未能解决你的问题,请参考以下文章

hibernate-criteria查询

查询后如何设置@Transient 字段值?使用 Hibernate Criteria 进行查询

Hibernate中Criteria的完整用法

如何使用 Hibernate Criteria 连接两个具有 OneToMany 关系的表

使用 Hibernate Criteria 查询多对多关系

Hibernate Criteria Restrictions AND / OR 组合