我有两个实体(Consultancy
- 所有者和InterviewType
)@ManyToMany
双向关系。用户可以将访谈类型附加到咨询。我知道在我们使用Hibernate的情况下,我们可以在merge()
上调用EntityManager
方法来持久保存新的瞬态实体或更新分离对象,但是save()
方法呢?在Spring Data或Spring Data中有另一种方法吗?它会对@ManyToMany
关系的依赖实体产生一些影响吗?如果是'是'以什么方式?它是否会引用Hibernates merge()
方法?
答案 0 :(得分:0)
如果你看一下2.0.2版本的实现:
@Transactional
public <S extends T> S save(S entity) {
if (entityInformation.isNew(entity)) {
em.persist(entity);
return entity;
} else {
return em.merge(entity);
}
}
如果持久性提供程序确定传递的实体new ..没有id /不由持久性提供程序管理,则会在引擎下调用合并。这样就可以了解新的&#39;取决于EntityInformation
的底层实现。
一般情况下,它应该在有需要时调用合并,虽然我有必须编写自己的自定义合并逻辑的情况,因为隐式merge
没有被调用