0
struts 액션에서 데이터베이스에서 객체 X를 가져 와서 포함 된 일대일 컬렉션에 대한 참조를 가져 와서이 컬렉션에 몇 개의 객체를 추가하고 원래 객체 X를 저장합니다. 문제가 발생하지 않지만 하나의 many 컬렉션에서 참조하는 테이블에 추가 된 새 행이 없습니다.Hibernate 데이터베이스 업데이트가 하위에 전파되지 않음
Heres는 내 액션 코드...
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;
}
Heres는 내 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;
}
}
내가 내의 DAO를 생성하기 위해 최대 절전 모드 도구를 사용
@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;
}
}
을 heres 내 DefinitionT 클래스
및 Pojos definitionTao를 사용하여 definitionT 인스턴스를 지속하면 fin을 지속합니다. 그래서 테이블의 무결성이 좋다. 왜 컬렉션을 저장하지 않았고 그렇게하지 못한 이유에 대해 어떤 오류도주지 않았습니까?
안녕하세요, 각 정의 인스턴스가 각 정의 인스턴스에서 설정하는 WordT가 있습니다. 나는 "일대 다 (one to many) 협회에 계단식이 없다"는 것이 무슨 뜻인지 이해하지 못합니다. 어떻게 구현합니까? – MayoMan
약간의 인터넷 검색 후에 계단식을 사용하는 방법을 발견했습니다. 작동하면 답변으로 받아 들일 것입니다. 감사 – MayoMan