您好 我是JPA的新手,我认为我的映射注释存在问题 我正在使用hibernate 3.6.1 final和JPA 2
以下是我的班级:
public class Resident {
...
@OneToMany(orphanRemoval = true, mappedBy = "resident")
@Cascade({org.hibernate.annotations.CascadeType.ALL})
public List<ResidentInfo> infos;
}
public class ResidentInfo {
...
@ManyToOne(optional = false)
public Resident resident;
}
当我第一次尝试保存数据时,一切都运行良好。
但是,当我尝试使用save()方法更新记录时,似乎不会应用参数orphanRemoval。
例如,如果infos是4条记录的列表,并且我通过删除2条记录来更新它,则删除的2条记录不会从数据库中删除
我还有另一个问题,当我尝试将一个元素添加到我的列表信息中时,我没有错误,但添加的元素没有记录在数据库中。
为了记录数据,我只使用resident.save(),也许我错了?
答案 0 :(得分:0)
你不要忘记添加
@Column(name = "resident")
到ManyToOne关系?
您使用的是
session.startTransaction()`
和
session.getTransaction().commit()` ?