【问题标题】:How Can I have one parent ENTITY and many types of child ENTITIES in JPA?如何在 JPA 中拥有一个父实体和多种类型的子实体?
【发布时间】:2012-11-11 20:54:10
【问题描述】:

我正在尝试使用 JPA 注释 设计我的 ENTITY CLASSES

我想要做的如下:

带有的 USER 表
身份证, ***电子邮件, 密码, 激活码, 积极的, 角色***

还有许多 TYPES OF USER 表,例如。
STUDENT_TABLE
USER_ID 名 姓 公司 地址 等等

导师
USER_ID 名 姓 出生日期 部 等等

当 USER 将根据他们的角色进行注册时,他们将被存储在两个表中(USER、MENTOR/STUDENT)

当他们登录时,ManagedBean 将查看 UESR 表以验证身份验证。

我厌倦了使用@OneToOne,但它只适用于两个表。

如果有人能提供帮助,我将不胜感激!

谢谢

【问题讨论】:

    标签: jpa entity


    【解决方案1】:

    如果我理解正确,你想要的是继承关系:

    @Entity
    @Inheritance(strategy = JOINED)
    public abstract class User { ... }
    
    @Entity
    public class Student extends User { ... }
    
    @Entity
    public class Mentor extends User { ... }
    

    JOINED 策略告诉 JPA User 类中的字段存储在一个表(USER)中,并且每个子类在自己的表(STUDENT 和 MENTOR)中保留自己的字段,并使用连接列来引用USER 表 ID。

    【讨论】:

    • 真是个了不起的人,非常感谢。所以我将在 USER 表中拥有的数据可以从每个子类访问?
    • 我需要将@DiscriminatorColumn 放在任何地方吗?如果在哪里?谢谢
    • 我认为这取决于您的 JPA 实现。 Hibernate 不需要任何鉴别器列。如果您的引擎需要一个,那么注释必须放在 User 类上,如 javadoc 中所述
    猜你喜欢
    • 2019-08-19
    • 2017-06-17
    • 1970-01-01
    • 1970-01-01
    • 2018-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-03
    相关资源
    最近更新 更多