休眠 - 具有角色的多对多

时间:2012-09-18 07:51:43

标签: hibernate jpa many-to-many

考虑以下模型:

enter image description here

我确实希望将其与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

来做到这一点

1 个答案:

答案 0 :(得分:1)

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

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