java - 在没有表映射的情况下继承 Hibernate 对象

标签 java hibernate inheritance jpa

我想在下面定义的项目中使用 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/

相关文章:

c# - 如何从另一个类访问 Winform 文本框控件?

javascript - Thymeleaf - 取消引用内联 JavaScript 表达式的一部分

java - @TransactionConfiguration(transactionManager ="txManager")NoSuchBeanDefinitionException : No bean named 'txManager' is defined

java - Spring Hibernate 数据库查询不起作用

java - 带有公式的 Hibernate @OneToOne - 列不能外部连接到子查询

JavaScript:使用子类更改默认函数?

C++ 继承和函数覆盖

java - 获取对 FXML ImageView 的引用

java - Kafka生产者配置立即发送消息

java - 未使用 docx4j 库在 docx 中创建表