我有一對多的關聯父實體向子實體:的Hibernate 4.2.2未插入時驗證實體到其@OneToMany收藏
Parent {
@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true, mappedBy = "parent", fetch = FetchType.EAGER)
@Size(min = 0, max = 4)
List<Child> children = new ArrayList<Child>();
@Transactional
public void addChild(Child child) {
child.setParent(this);
children.add(child);
}
}
當我調用addChild()
方法時,Hibernate不會驗證孩子們集合@Size約束並持續存在導致數據庫中的無效實體的'原樣'。
爲什麼Hibernate不驗證父實體?
的方法被註釋爲@Transactional - 留存()將被隱式調用 – Ivan
我不知道這個'@ Transactional'爲你工作在一個域實體類爲'Spring'重視在Spring bean的定義方面對包掃描配置。我會建議將其移出服務。 – Zilvinas
這是一個@Configurable類,在我的情況下,我有意使用活動記錄模式。感謝您的建議,儘管;) – Ivan