【发布时间】:2022-01-11 22:21:28
【问题描述】:
我正在尝试将这三个实体相互映射,而不向其中任何一个添加任何其他字段。它们应该只包含已经存在的字段。我还尝试仅获取表中代表当前存在的实体字段的列,而不获取其他列。
@Entity
public class Order {
@Id
private Integer orderId;
private String title;
private Customer customer;
private List<Comment> comments;
}
@Entity
public class Customer {
@Id
private Integer customerId;
private String name;
}
@Entity
public class Comment {
@Id
private Integer commentId;
private Integer orderId;
private String details;
}
我的理解是我不能简单地使用@OneToOne、@OneToMany 和@ManyToOne 映射,因为Customer 和Comment 都没有对Order 的引用 。我试图以某种方式直接从 Order 引用 Customer 和 Comment 的 ID。
我尝试过使用@MapsId 和@JoinColumn,但要么我不知道如何正确使用它们,要么它们没有按照我的想法去做。
这个任务有可能吗?如果是,如何将它们相互映射?
【问题讨论】:
-
这不是 ORM 的想法! Hibernate 的目标是将对象图映射到数据库表。
-
我的理解是这正是我想要做的。我正在尝试创建从订单到客户和评论的单向引用。
标签: java hibernate jpa orm hibernate-mapping