java - 子类和 hql

标签 java hibernate polymorphism hql

我有一个类和扩展它的子类。 像这样:

    @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)的列。

谢谢

最佳答案

如果你想持久化DomesticCatTigerCat,需要添加@Entity。您可以使用 @Inheritance 注释来定义如何映射子类 - 对于单个表,请使用 @Inheritance(strategy=SINGLE_TABLE)

如果不添加@Table,则默认为@Table。

关于java - 子类和 hql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9278021/

相关文章:

mongodb - embedded_in 在 mongoid 中的意义

java - 多态性中 Java Lambda 表达式的有趣行为

java - 使用 MySQL 填充 jTable

java - 将相同的 servlet 配置到不同的映射并为每个映射设置不同的安全性

java - 如何在jsp中选择数据库的最后一行?

java - 如何使用 java 以编程方式在 Amazon S3 存储桶之间传输文件?

java - 何时将 EntityManager.find() 与 EntityManager.getReference() 与 JPA 一起使用

java - 使用 LocalDateTime 的“AttributeConverter 和显式类型不能应用于同一属性”

java - Hibernate hql 子字符串函数在 postgres 和 oracle 中的行为不同?

c++ - 如何 "skip"某些子类函数