我有一个类和扩展它的子类。 像这样:
@Table
@Entity
class Cat{
class DomesticCat extends Cat{
LitterBox litterBox;
//getter and setters
}
class TigerCat extends Cat{
HuntingStyle huntingStyle;
//getter and setters
}
}
我想用hql查询。
例如,我想找到拥有“蓝色”LitterBox 的猫
我应该在DomesticCat和TigerCat类之前添加@entity和@Table注释吗?
数据库中没有用于子类特定字段(如 litterBox 和 HuntingStyle)的列。
谢谢
最佳答案
如果你想持久化DomesticCat
和TigerCat
,需要添加@Entity。您可以使用 @Inheritance 注释来定义如何映射子类 - 对于单个表,请使用 @Inheritance(strategy=SINGLE_TABLE)
。
如果不添加@Table,则默认为@Table。
关于java - 子类和 hql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9278021/