【发布时间】:2010-06-14 21:42:32
【问题描述】:
我很难理解休眠对象的工作方式。这是我的模型的一小部分:
职位空缺:
@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 获取问题,更改一些值,然后将其合并(),但这不起作用。
我使用来自 Spring (appfuse) 的 Hibernate,通常作为分离的对象。
【问题讨论】:
-
您应该尝试添加代码,准确说明您调用的是什么休眠 API,以及何时打开会话与关闭会话。此外,通过“不起作用”,您需要澄清您是否遇到错误,或者它是否默默地无法保存更改。
标签: hibernate spring jpa appfuse