休止状態のオブジェクトが機能する方法について頭を悩ませています。ここに私のモデルがどのように見えるかの小さな塊があります:
就職口:
@ManyToMany(fetch=FetchType.EAGER,cascade=CascadeType.ALL)
@JoinTable(
name="jobOpening_questionSet",
joinColumns=@JoinColumn(name="jobOpenings_id"),
inverseJoinColumns=@JoinColumn(name="questionSets_id")
)
@IndexColumn(name="question_sets_idx",base=0,nullable=false)
public List<QuestionSet> getQuestionSets() {
return questionSets;
}
質問セット:
@ManyToMany(mappedBy="questionSets",fetch=FetchType.EAGER)
public Set<JobOpening> getJobOpenings() {
return jobOpenings;
}
@OneToMany(cascade=CascadeType.ALL,fetch=FetchType.EAGER)
@IndexColumn(name="questions_idx",base=0)
@JoinColumn(name="questionset_id",nullable=false)
public List<FormQuestion> getQuestions() {
return questions;
}
フォーム質問:
@ManyToOne
@JoinColumn(name="questionset_id", insertable=false, updatable=false, nullable=false)
@OnDelete(action=OnDeleteAction.CASCADE)
public QuestionSet getQuestionSet() {
return questionSet;
}
たとえば、質問セット内の質問を変更したり、質問セットが関連付けられているジョブを変更したりするにはどうすればよいでしょうか。たとえば、質問セット内の質問を編集するには、ID を介して質問を取得し、いくつかの値を変更して、merge() で元に戻すことができるはずだと思いますが、これは機能しません。
私は、Spring の Hibernate (appfuse) を、通常は切り離されたオブジェクトとして使用しています。