首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cascade="all-delete- orphan“不再被引用

cascade="all-delete- orphan“不再被引用
EN

Stack Overflow用户
提问于 2014-06-17 22:14:12
回答 2查看 12.3K关注 0票数 0

我一直在这里观察这个异常,但我找不到解决方案,所以我想只是粘贴我的代码,以防有什么问题。当我尝试查找EvaluationSelectionCriteria实体时,我接收到此异常。

代码语言:javascript
复制
Exception: org.hibernate.HibernateException: A collection with cascade="all-delete-      orphan" was no longer referenced by the owning entity instance: com.greenvalley.etendering.domain.Candidacy.evaluationSelectionCriterias 


 @OneToMany(cascade = {CascadeType.ALL}, fetch = FetchType.LAZY)
@JoinColumn(name = "candidacy_id", nullable = false)
@XmlElement
@JsonIgnore
@Getter
@Setter
private List<EvaluationSelectionCriteria> evaluationSelectionCriterias = new ArrayList<>();



@ManyToOne
@JoinColumn(name = "candidacy_id", nullable = false, insertable = false, updatable = false)
@XmlTransient
@Getter
@Setter
private Candidacy candidacy;
EN

回答 2

Stack Overflow用户

发布于 2015-05-23 00:50:03

我已经解决了这个问题,用下面这样的代码替换了我的setXX方法

代码语言:javascript
复制
public void setEvaluationSelectionCriterias(List<EvaluationSelectionCriteria> evaluationSelectionCriterias) {

if(this.evaluationSelectionCriterias == null) { //if not already initialized
  this.evaluationSelectionCriterias = evaluationSelectionCriterias;
} else {
  this.evaluationSelectionCriterias.clear();
  this.evaluationSelectionCriterias.addAll(evaluationSelectionCriterias);
}
票数 5
EN

Stack Overflow用户

发布于 2014-06-18 00:16:19

我发现在处理@ManyToOne关系时,@JoinTable似乎比单独使用@JoinColumn更好。尝试如下所示:

代码语言:javascript
复制
@OneToMany(cascade = {CascadeType.ALL}, fetch = FetchType.LAZY)
@JoinTable(
   name="candidacy_evaluation_search_criteria",
   joinColumns={ @JoinColumn(name="evaluation_selection_criteria", referencedColumnName="id") },
   inverseJoinColumns={ @JoinColumn(name="candidacy", referencedColumnName="id", unique=true) })
@XmlElement
@JsonIgnore
@Getter
@Setter
private List<EvaluationSelectionCriteria> evaluationSelectionCriterias = new ArrayList<>();

代码语言:javascript
复制
@ManyToOne(mappedBy = "evaluationSelectionCriterias")
@XmlTransient
@Getter
@Setter
private Candidacy candidacy;

注意,'criteria‘是’criteria‘的复数,所以你的类名应该是EvaluationSelectionCriterion,集合名应该是evaluationSelectionCriteria

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24266134

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档