我得到了一个包含这些列的数据库表 MyTable: int Id、字符串类型、字符串值
我得到了一个包含这些字段的实体类
@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 的变量,我明确不想要任何继承。
最佳答案
我能看到并且接近您的要求的唯一选项是:
在MyClass
上使用注释Embeddable
,在TypeA
上使用Embedded
将部分解决您的问题。
部分是因为警告,即您应该将 id
字段从 MyClass
移动到 TypeA
类。我认为,这就是在不使用继承的情况下可以获得的结果。
有兴趣看看是否真的存在完全满足您要求的解决方案。
无论如何,如果可以选择继承,那么您可以在父类(super class)中拥有 id
并将该父类(super class)注释为 MappedSuperClass
并让 TypeA
扩展父类(super class)。
关于java - 具有嵌套在不同实体类中的 Id 的实体类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49109807/