0
在我的struts動作中,我從數據庫中檢索一個對象X,獲取對其包含的一對多集合的引用,向該集合添加一些對象並保存原始對象X. 問題是我沒有得到任何錯誤拋出,但由一對多引用的表沒有得到任何新的行添加到它。Hibernate數據庫更新沒有傳播給孩子
我的繼承人動作代碼...
public String saveSelectedDefinitions()
{
WordT wordT = wordDao.get(2);
Set<DefinitionT> storedDefs = wordT.getDefinitionTs();
for(int i=0; i<3; i++)
{
DefinitionT selectedDef = new DefinitionT();
selectedDef.setValue("abc");
selectedDef.setWordT(wordT);
storedDefs.add(selectedDef);
}
wordT.setDefinitionTs(storedDefs);
wordDao.save(wordT);
return SUCCESS;
}
我的繼承人WordT類
@Entity
@Table(name = "word_t", schema = "public")
public class WordT implements java.io.Serializable {
private int id;
private Set<DefinitionT> definitionTs = new HashSet<DefinitionT>(0);
public WordT() {
}
public WordT(int id) {
this.id = id;
}
public WordT(int id, Set<DefinitionT> definitionTs) {
this.id = id;
this.definitionTs = definitionTs;
}
@Id
@Column(name = "id", unique = true, nullable = false)
public int getId() {
return this.id;
}
public void setId(int id) {
this.id = id;
}
@OneToMany(fetch = FetchType.EAGER, mappedBy = "wordT")
public Set<DefinitionT> getDefinitionTs() {
return this.definitionTs;
}
public void setDefinitionTs(Set<DefinitionT> definitionTs) {
this.definitionTs = definitionTs;
}
}
和我的繼承人DefinitionT類
@Entity
@Table(name = "definition_t", schema = "public")
public class DefinitionT implements java.io.Serializable {
private int id;
private WordT wordT;
public DefinitionT() {
}
public DefinitionT(int id, WordT wordT) {
this.id = id;
this.wordT = wordT;
}
public DefinitionT(int id, WordT wordT, String value, int typeId,
Boolean selected) {
this.id = id;
this.wordT = wordT;
}
@Id
@Column(name = "id", unique = true, nullable = false)
public int getId() {
return this.id;
}
public void setId(int id) {
this.id = id;
}
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "word_id", nullable = false)
public WordT getWordT() {
return this.wordT;
}
public void setWordT(WordT wordT) {
this.wordT = wordT;
}
}
我使用的Hibernate工具生成的DAO我和Pojos 如果我使用DefinitionDao來保存定義T實例,它會持續fin因此表格的完整性是可以的。爲什麼它不能保存這個集合,並且不給我任何錯誤,爲什麼它沒有這樣做呢?
嗨,我有WordT,每個定義引用在每個定義實例中設置。我不明白你的意思是「沒有一對多協作的級聯」我該怎麼實現呢? – MayoMan
剛剛發現了一些Google搜索後啓用級聯。如果它有效,將會接受爲答案。謝謝 – MayoMan