gpt4 book ai didi

java - Hibernate 和 JPA 的好的继承策略是什么?

转载 作者:搜寻专家 更新时间:2023-10-31 19:58:42 25 4
gpt4 key购买 nike

我有这种情况:

我有一个实体,Person,它包含一个人的所有个人详细信息,例如出生日期、街道地址、市政当局 ecc ecc。我有一个描述俱乐部成员的实体 ClubMember 并包含一些字段,例如:注册日期、成员类型、信用、ecc ecc

所以,一个 ClubMember 是一个 Person,我认为用继承来描述它是正确的:ClubMember extends Person,但是,什么类型的策略?

我会在数据库中获取两个表,PersonClubMember,其中 ClubMember 包含 id_person @OneToOne关系,但保持实体间的继承性;这可能(并且是正确的)吗?

JOINED 是最接近我的目标的策略,但是我丢失了表 ClubMemberID 字段,实际上是 ID 成为表 PersonID...

最佳答案

Blow,你应该在选择某种继承策略时保持性能问题Here您可以很好地了解可用的继承策略。别忘了继承可以改写为关联如下

代替

public class A {}

public class B extends A {}

你可以使用

public class B {

private A a;

}

或者您可以使用 MapedSuperClass 来映射所有继承的属性,而无需使用任何 Hibernate/JPA 继承策略。参见 here

请记住,在使用默认 JPA/Hibernate 注释时,Hibernate 总是获取所有子类。如果您有一个单一层次结构,更喜欢使用单表继承策略。当您有一个复杂的层次结构时,联合策略的设计会更好,但它会因查询任何实体时的性能问题而受到影响。

关于java - Hibernate 和 JPA 的好的继承策略是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3380190/

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