【发布时间】:2020-05-20 00:38:02
【问题描述】:
例如,如果你在Hibernate中有一个订单表和一个接收订单的产品表,它被映射为一对多的关系。那么,我必须在代码中编写映射关系吗?在我的项目中,我将订单信息永久存储在我拥有的数据库中,但是在这种情况下,它是否需要是映射关系?我认为除了删除级联之外别无他法。
【问题讨论】:
例如,如果你在Hibernate中有一个订单表和一个接收订单的产品表,它被映射为一对多的关系。那么,我必须在代码中编写映射关系吗?在我的项目中,我将订单信息永久存储在我拥有的数据库中,但是在这种情况下,它是否需要是映射关系?我认为除了删除级联之外别无他法。
【问题讨论】:
如果你想在你的业务代码中使用关联,你还需要在你的领域模型中建模。在所描述的示例中,我希望 Order 和 Product 实体之间存在多对多关联。您可以将其建模为单向(= 仅在 1 个实体上)或双向(= 在两个实体上)关联。
这是一个简单的例子。我在我的guide to association mappings 中提供了对各种关联的非常详细的描述。
public class Order {
@ManyToMany
private Set<Product> products;
...
}
public class Product {
@ManyToMany(mappedBy = "products")
private Set<Order> orders;
...
}
【讨论】: