- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有这种情况(使用springMVC + hibernate):
一条“PriceList”记录由一项“服务”和一项“公司”创建:
价目表类别:
//Many to one with Company
@NotNull(message = "....")
@ManyToOne
@JoinColumn(name = "company_id", referencedColumnName="id", nullable=false)
private Company company;
//Many to one with Service
@NotNull(message = "....")
@ManyToOne
@JoinColumn(name = "service_id", referencedColumnName="id", nullable=false)
private Service service;
服务等级:
@OneToMany(mappedBy="service", cascade=CascadeType.ALL, fetch = FetchType.LAZY)
private Set<PriceList> priceList;
公司类别:
@OneToMany(mappedBy="company", cascade=CascadeType.ALL, fetch = FetchType.LAZY)
private Set<Company> company;
我的问题是当我尝试删除价目表时:没有EAGER一切都很好,但如果我保留 CascadeType.ALL 和 FetchType.EAGER,我会收到此错误:
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.dao.InvalidDataAccessApiUsageException: deleted object would be re-saved by cascade (remove deleted object from associations): nested exception is org.hibernate.ObjectDeletedException: deleted object would be re-saved by cascade (remove deleted object from associations)
我不明白为什么会收到此错误...我认为如果我想删除“priceList”记录,不会有任何问题。
我认为在删除我的记录之前我应该刷新或类似的东西......
我删除了公司或服务,一切都很好,因为价目表中的记录也被删除了。
非常感谢您的建议
最佳答案
在处理双向关联并且您想要添加/删除子项时,您应该在父实体中使用以下方法:
public void addChild(Child child) {
children.add(child);
child.setParent(this);
}
public void removeChild(Child child) {
children.remove(child);
child.setParent(null);
}
删除将破坏父/子以及子/父关联。
关于java - 使用 FetchType.EAGER 时发生 CascadeType.ALL 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24410326/
我是一名优秀的程序员,十分优秀!