Arg*_*dhu 9 spring spring-data
当调用entityManager.persist(...)-Method并且在spring数据jpa中调用entityManager.merge(...)时.根据文档: 如果实体尚未持久化,Spring Data JPA将通过调用entityManager.persist(...)-Method来保存实体,否则将调用entityManager.merge(...)-Method ...
那么Spring数据如何确定实体是否持久化?
Elb*_*bek 14
这是save方法(in SimpleJpaRepository)的impl :
/*
* (non-Javadoc)
* @see org.springframework.data.repository.CrudRepository#save(java.lang.Object)
*/
@Transactional
public <S extends T> S save(S entity) {
if (entityInformation.isNew(entity)) {
em.persist(entity);
return entity;
} else {
return em.merge(entity);
}
}
Run Code Online (Sandbox Code Playgroud)
所以它看起来entityInformation.isNew(entity).这种方法的实现是(in AbstractPersistable):
public boolean isNew() {
return null == getId();
}
Run Code Online (Sandbox Code Playgroud)
所以它决定基于id字段
| 归档时间: |
|
| 查看次数: |
6355 次 |
| 最近记录: |