java - 泛型类中的 hibernate 继承

标签 java hibernate generics inheritance

我有一个泛型类,它是某些非泛型类的 super 类,这些类只是设置其泛型参数,如下所示:

@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
class A<T>{
    @Id
    getId(){..}
    setID(int id){..}
    int id

    T t;
    T getT(){...}
    setT(T t){...}
}

@Entity
class B extends A<Integer>{}

但是 hibernate 说 B 没有标识符我该怎么办?

最佳答案

如果 A 不会被直接持久化,但您确实希望它的子类获取其部分(或全部)Hibernate 注释,则应该使用 @MappedSuperclass:

@MappedSuperclass
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
class A<T>{
    @Id
    getId(){..}
    setID(int id){..}
    int id

    T t;
    T getT(){...}
    setT(T t){...}
}

关于java - 泛型类中的 hibernate 继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13015032/

相关文章:

java - 解决 Activity 和 Fragment 之间循环依赖的最佳方法

java - jdbc创建表时出错

java - 推土机和延迟初始化收集错误

java - Java 泛型的类型别名

c# - 根据另一个列表<>排序

java - 泛型、复制构造函数、克隆方法

java - 如何在共享首选项中保存按钮状态?

java - 无法将位置参数传递到 HQL 查询中

java - 数据源的 Spring Boot 自动配置

java - Hibernate:一对一关系的查询过多