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

问题描述 投票:0回答:1

我有一个数据库表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的变量,我显然不希望任何继承。

java hibernate
1个回答
1
投票

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

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.