首页 文章

没有表映射的Hibernate对象的继承

提问于
浏览
2

我想在项目中使用hibernate对象,如下所述 .

@Table(name = "Parent")
class Parent{

     int id;
     String name;

}

@Table(name = "Child")
class Child extends Parent{
     String schoolNo;
}

但在数据库中;这两个表没有关系 .

父表列是; id,名字

子表列是; id,name和schoolNo

如果我使用

@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)

当我发送一个父对象的查询时,hibernate在Child和Parent表上使用UNION,但我只想从Parent表中选择 .

如果我使用

@Inheritance(strategy=InheritanceType.SINGLE_TABLE)

hibernate想要一个鉴别器专栏 .

我需要hibernate将每个类的select查询发送到它的表 .

最好的祝福 .

2 回答

  • 0

    TABLE_PER_CLASS是正确的策略 .

    奇怪的是,Hibernate在两个表上生成了一个联合查询,但这仍然有效 . 错误表上的子查询将找不到任何内容,因此结果将是正确的 . 这听起来像Hibernate的子类查询生成中的错误 .

  • 2

    在类似的情况下,我在父表上使用 @Inheritance(strategy = InheritanceType.JOINED) .

    在Hibernate文档中查看更多信息:http://docs.jboss.org/hibernate/annotations/3.5/reference/en/html/entity.html#d0e1168

相关问题