我有两个表有多对多关系的表,以及一个将两者连接到额外列的关联表。
遵循教程(this one in particular),为了表示这一点,我创建了两个与我的普通表相对应的实体,另一个实体用于我的具有嵌入式id的关联表。
为了保证单一性,我覆盖了方法equals
和hashCode
,并且这些集合的类型为Set
。
当我坚持我只会得到一个空错误(见下面的整个错误),所以这让我不知道我做错了什么。
以下是实体的关系,它们的设置方式和错误。
实体1 Prestation
:
@OneToMany(fetch=FetchType.LAZY, mappedBy="id.prestation", cascade={CascadeType.MERGE, CascadeType.PERSIST})
private Set<Louer> louers = new HashSet<Louer>(0);
实体2 Materiel
:
@OneToMany(fetch=FetchType.LAZY, mappedBy="id.materiel")
private Set<Louer> louers = new HashSet<Louer>(0);
实体3 Louer
:
@AssociationOverrides
(
{
@AssociationOverride(name="id.materiel", joinColumns = @JoinColumn(name = "ID_MAT")),
@AssociationOverride(name="id.prestation", joinColumns = @JoinColumn(name="ID_PREST"))
}
)
@Transient
private Materiel materiel;
@Transient
private Prestation prestation;
可嵌入课程LouerPK
:
@ManyToOne
private Materiel materiel;
@ManyToOne
private Prestation prestation;
设置:
louer.setMateriel(mat);
louer.setPrestation(prest);
prest.getLouers().add(louer);
错误:
ERROR [model.exception.DAOException] (default task-50) null
有人可以帮忙吗?