0

考虑以下模型:

在此处输入图像描述

我确实想用 JPA 和 Hibernate 正确地映射它。目前我这样做的方式是将列表添加到用户实体 - CustomerContracts 和 ConsulterContracts。

@OneToMany(mappedBy = Contract.CUSTOMER_COLUMN, fetch=FetchType.EAGER,targetEntity=Contract.class)
private Set<Contract> customerContracts = new HashSet<Contract>();

@OneToMany(mappedBy = Contract.CUSTOMER_COLUMN, fetch=FetchType.EAGER,targetEntity=Contract.class)
private Set<Contract> consulterContracts = new HashSet<Contract>();

如果您需要浏览此模型,这不是很“方便”!

问题是我宁愿在用户端只有一个列表 - 合同 - 但仍然必须在合同端(顾问和客户)拥有用户属性。

有没有办法用hibernate和JPA做到这一点

4

1 回答 1

1

没有办法用 ERD/SQL 做到这一点,因为 JPA 只是从面向对象编程到 ERD 的映射,所以不,没有办法。

您需要更改 ERD,以便有一个中间实体,其键是 UserId、ContractId 和 Role。

于 2012-09-18T08:00:28.133 回答