具有嵌套在不同实体类中的Id的实体类

时间:2018-03-05 11:47:28

标签: java hibernate

我有一个包含这些列的数据库表MyTable: int Id,String Type,String Value

我得到了一个带有这些字段的实体类

@Entity
@Table(name = "MyTable")
class MyClass {
    @Id
    int Id;
    String Type;
    String Value;
}

现在我想要的是看起来像这样的类:

@Entity
class TypeA {
    MyClass myClass;
    //some stuff
}

TypeA的Id应该是MyClass.Id。这可以用Hibernate完成吗? MyClass必须是TypeA的变量,我显然不希望任何继承。

1 个答案:

答案 0 :(得分:1)

我能看到并且接近您的要求的唯一选择,但有一点需要注意:

Embeddable上使用注释MyClassEmbedded上的TypeA将部分解决您的问题。

部分原因是警告,即你应该将id字段从MyClass移到TypeA类。我认为,这是你可以在不使用继承的情况下获得的结果。

有兴趣看看是否确实存在任何完全符合您要求的解决方案。

无论如何,如果继承是一个选项,那么允许你在超类中拥有id并将这个超类注释为MappedSuperClass并让TypeA扩展超类。< / p>