gpt4 book ai didi

java - Hibernate - 强制父类和子类之间的内部连接

转载 作者:行者123 更新时间:2023-11-29 09:24:01 26 4
gpt4 key购买 nike

我有一个父类 Party 和一个子类 LiveParty 以及其他类(见下文),这在数据库中始终是一对一的关系。每当我使用 Criteria API 时,它都会在两者之间执行 Left Outer Join。我想在父子之间强制进行内部连接,因为这会影响某些查询的性能,但在文档中找不到执行此操作的方法,任何人都可以建议一种方法吗?

@Entity
@Table(name = "Party", schema = "dbo")
@Inheritance(strategy = InheritanceType.JOINED)
public abstract class Party{
...
}

@Entity
@Table(name = "LiveParty", schema = "dbo")
@PrimaryKeyJoinColumn(name = "partyId")
public class LiveParty extends Party {
...
}

最佳答案

Whenever I use the Criteria API it does a Left Outer Join between the two.

当使用 JOINED 策略时,这确实是您将获得的结果,Hibernate 将对所有 与给定继承节点的后代对应的表执行外部联接树以推断并返回给定行的实际类型(有关详细信息,请参见 ChssPly76 的 this great previous answer)。

换句话说,我认为您不能强制 Hibernate 使用内部联接,至少不能不更改映射(使用辅助表或 OneToOne 关系,我不确定你的约束到底是什么)。

相关问题

关于java - Hibernate - 强制父类和子类之间的内部连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4163540/

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