java - 孤儿删除不适用于 session.update 功能
问题描述
我有@OneToMany
关系。父实体也有瞬态字段。我想在保存或更新后保留这些瞬态字段。此外,我希望休眠以孤立删除子实体。如果我使用 entityManager.merge,hibernate orphan 会删除子实体,但也不会保留瞬态字段。如果我使用 session.saveOrUpdate,它会保留瞬态字段但不会孤立删除。
示例实体;
@Table(name = "parent_entity")
@Entity(name = "ParentEntity")
public class ParentEntity extends PersistentEntity {
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "inner_entity")
private InnerEntity innerEntity = new InnerEntity();
@Transient
private SomePojo transientField;
public InnerEntity getInnerEntity() {
return innerEntity;
}
public void setInnerEntity(InnerEntity innerEntity) {
this.innerEntity = innerEntity;
}
}
@Table(name = "parent_entity")
@Entity(name = "ParentEntity")
public class ParentEntity extends PersistentEntity {
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "inner_entity")
private InnerEntity innerEntity = new InnerEntity();
public InnerEntity getInnerEntity() {
return innerEntity;
}
public void setInnerEntity(InnerEntity innerEntity) {
this.innerEntity = innerEntity;
}
}
@Table(name = "child_entity")
@Entity(name = "ChildEntity")
public class ChildEntity extends PersistentEntity {
@ManyToOne
@JoinColumn(name = "inner_entity")
private InnerEntity innerEntity;
@Column(name = "child_value")
private String childValue;
public InnerEntity getInnerEntity() {
return innerEntity;
}
public void setInnerEntity(InnerEntity innerEntity) {
this.innerEntity = innerEntity;
}
public String getChildValue() {
return childValue;
}
public void setChildValue(String childValue) {
this.childValue = childValue;
}
}
正如我所说,我想在父级上操作保存和更新,我希望休眠保持瞬态字段并进行孤立删除。
我已经尝试过 entityManager.merge 和 session.saveOrUpdate 但没有一个能满足我的要求。
谢谢。
解决方案
推荐阅读
- c# - 领域更改事件和同步上下文
- php - laravel 5.7 干预 Image::make return 500 Internal Server Error
- mysql - PHP MySQL比较两个表并获取值
- python - 如何将缺少季度的数据为 0 的行插入到熊猫数据框中?
- powershell - NetAdapter 命令给出“数据无效”消息
- java - 像api调用这样的网络相关任务应该放在Activity生命周期的什么地方?
- android - 如何修复 MPAndroid 图表中的饼图重叠中心文本
- node.js - Google App Engine 无法解析相对路径
- r - 创建alist时,如何在运行时提取函数体
- kubernetes-helm - 根入口与路径入口冲突