【发布时间】:2012-08-22 08:23:56
【问题描述】:
在@inheritance 类型中加入
我有班级人、员工和学生
我在 Person 中有公共列,如果我必须从 person 类访问它,则为鉴别器列设置 getter
@Inheritance(strategy=InheritanceType.JOINED) @DiscriminatorColumn(name="PERSON_TYPE", discriminatorType=DiscriminatorType.STRING) 公共类人
@Column(name = "RELATIONSHIP_TYPE",insertable=false,nullable=false,updatable=false) 私有字符串关系类型;
// getter 和 setter
@DiscriminatorValue("学生") @PrimaryKeyJoinColumn(name="PERSON_ID") 公共课学生
@DiscriminatorValue("EMPLOYEE") @PrimaryKeyJoinColumn(name="PERSON_ID") 公共类员工
所以当我保存 Employee 或 Student 记录然后检索 Person 记录时,它给我的鉴别器列值为 NULL 但是在重新启动服务器后,它给了我相应的价值
如果我手动设置鉴别器列值的值,然后保存并检索然后它给我这个值(我需要手动设置鉴别器列值吗?) 那么使用鉴别器列有什么好处
为什么我不应该使用具有列类型的员工和学生的人与学生的 OneToMany 关系,并且通过枚举我可以将透视值输入到列中 我还将在这些列上应用延迟提取
请推荐
提前致谢 拉曼迪普·辛格
【问题讨论】:
标签: hibernate