我在使用hibernate的情况下,无论在一对一的映射中,我的孩子都会被持久化。
假设我有一个父实体,
@Entity
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
public class Parent {
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(unique = true)
private Child child;
// getter/setter ...
}
子实体,
@Entity
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
public class Child {
@OneToOne(mappedBy = "child")
private Parent parent;
// getter/setter ...
}
保存时我总是这样,
public class ParentServiceImpl ... {
public void save(ParentDTO parentDTO) {
// Map parent DTO to parent DAO
....
// Check if child is not null
if (parentDAO.getChild() != null) {
childRepository.save(parentDAO.getChild());
}
}
}
无需检查getChild是否为null,我如何才能为具有可空子级的父级实现hibernate的持久性?换句话说我有一个没有关联子级的父级,那么我只想为父级创建一行,而不是为具有可空列的子级创建一行。