gpt4 book ai didi

java - 是否可以强制 Hibernate 嵌入实体?

转载 作者:行者123 更新时间:2023-12-03 23:14:51 24 4
gpt4 key购买 nike

在我的用例中,我想@Embedded 实体中的类C

另一个实体引用C@OneToMany 关联,因此C@Entity 注释。

我知道这似乎是个糟糕的设计,但我相信它对我来说非常有意义。

是否可以强制 Hibernate 嵌入实体?如果我尝试它,Hibernate 会提示缺少 C 的 id 属性的 setter 。

我认为问题出在:

@Id
@GeneratedValue(strategy = GenerationType.TABLE)
private Long id;

最佳答案

为什么不直接创建您想要的实体,然后在该实体中嵌入 C。这样,您在两个类中都有 C,一个嵌入新实体,另一个嵌入新实体。

@Embeddable
public class Contact {
private String firstname;
private String lastname;
// getters and setters removed.
}

这是你的嵌入类:

@Entity
public class Student {
@Embedded
private Contact contact;
}

这是嵌入联系人的新实体

@Entity
public class FirmContact {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private int contactId;

@Embedded
private Contact contact;
}

最后,坚持联系的类必须是一个实体:

@Entity
public class Business {
@OneToOne(cascade=CascadeType.ALL)
private FirmContact contacts;
}

填充对象只是 java 中的几个额外步骤,但它应该可以完成您想要的映射。我希望这会有所帮助。

关于java - 是否可以强制 Hibernate 嵌入实体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28949853/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com