我想在下面定义的项目中使用 hibernate 对象。
@Table(name = "Parent")
class Parent{
int id;
String name;
}
@Table(name = "Child")
class Child extends Parent{
String schoolNo;
}
但是在数据库中; 这两个表没有关系。
父表列是;身份证、姓名
子表列是; id, name 和 schoolNo
如果我用
@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)
当我发送对父对象的查询时,hibernate 在子表和父表上使用 UNION,但我只想从父表中进行选择。
如果我使用
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
hibernate 需要一个鉴别器列。
我需要 hibernate 将每个类的选择查询发送到它的表。
最好的问候。
最佳答案
TABLE_PER_CLASS 是这里的正确策略。
Hibernate 对两个表生成联合查询很奇怪,但这应该仍然有效。对错误表的子查询将找不到任何内容,因此结果将是正确的。这听起来像是 Hibernate 的子类查询生成中的错误。
关于java - 在没有表映射的情况下继承 Hibernate 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9033711/