Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Hibernate-强制父类和子类之间的内部联接_Java_Hibernate_Orm_Inheritance_Inner Join - Fatal编程技术网

Java Hibernate-强制父类和子类之间的内部联接

Java Hibernate-强制父类和子类之间的内部联接,java,hibernate,orm,inheritance,inner-join,Java,Hibernate,Orm,Inheritance,Inner Join,我有一个父类Party和一个子类LiveParty以及其他类(见下文),在数据库中这始终是一对一的关系。每当我使用CriteriaAPI时,它都会在两者之间进行左外连接。我想强制在父级和子级之间进行内部连接,因为这会影响某些查询的性能,但在文档中找不到这样做的方法,有人能推荐一种方法吗 @Entity @Table(name = "Party", schema = "dbo") @Inheritance(strategy = InheritanceType.JOINED) public abst

我有一个父类
Party
和一个子类
LiveParty
以及其他类(见下文),在数据库中这始终是一对一的关系。每当我使用CriteriaAPI时,它都会在两者之间进行左外连接。我想强制在父级和子级之间进行内部连接,因为这会影响某些查询的性能,但在文档中找不到这样做的方法,有人能推荐一种方法吗

@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 {
...
}
每当我使用CriteriaAPI时,它都会在两者之间进行左外连接

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

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

相关问题
每当我使用CriteriaAPI时,它都会在两者之间进行左外连接

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

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

相关问题