gpt4 book ai didi

java - Hibernate 标准 API。加入

转载 作者:行者123 更新时间:2023-12-01 14:38:30 25 4
gpt4 key购买 nike

可以为此 SQL 构造 Criteria 查询:

SELECT P.This FROM Position P INNER JOIN PersonOnPosition PP ON PP.Tail = P.This WHERE PP.Tail IS NOT NULL

我想将 Hibernate Criteria 移植到自定义 SQL 方言(自定义 ECM 框架),但我在 JOIN 方面遇到问题。

谢谢。

最佳答案

正如 @Julien Langlois 指出的,这取决于您的实体定义。

假设您定义了一个关系,例如

@Entity
class PersonOnPosition {
@ManyToOne
@JoinColumn(name="Tail")
Position position;
}

你可以一起去

session.createCriteria(PersonOnPosition.class, "PP")
.createAlias("position", "P")
.setProjection(Property.forName("P.This"))
.add(Property.forName("PP.position").isNotNull())
.list();

如果您没有定义关系,则可以使用子查询获得相同的结果:

DetachedCriteria personOnPositionWithTail = DetachedCriteria.forClass(PersonOnPosition.class, "PP")
.setProjection(Property.forName("PP.Tail"))
.add(Property.forName("PP.Tail").isNotNull());
session.createCriteria(Position.class, "P")
.setProjection(Property.forName("P.This"))
.add(Property.forName("P.This").in(personOnPositionWithTail))
.list();

关于java - Hibernate 标准 API。加入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16239596/

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