在没有可空子的hibernate持久父级中

时间:2017-09-11 10:44:05

标签: java hibernate jpa

我在使用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的持久性?换句话说我有一个没有关联子级的父级,那么我只想为父级创建一行,而不是为具有可空列的子级创建一行。

0 个答案:

没有答案