我有一个包含这些列的数据库表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的变量,我显然不希望任何继承。
答案 0 :(得分:1)
我能看到并且接近您的要求的唯一选择,但有一点需要注意:
在Embeddable
上使用注释MyClass
和Embedded
上的TypeA
将部分解决您的问题。
部分原因是警告,即你应该将id
字段从MyClass
移到TypeA
类。我认为,这是你可以在不使用继承的情况下获得的结果。
有兴趣看看是否确实存在任何完全符合您要求的解决方案。
无论如何,如果继承是一个选项,那么允许你在超类中拥有id
并将这个超类注释为MappedSuperClass
并让TypeA
扩展超类。< / p>