查了好久,确实如 @好怕麻烦 所说,是这个样子。
至于为啥@DynamicUpdate无效还不大清楚。。。
目前能够找到的解决方案是实现自己的JpaRepository
这里给出自己的实现以作参考(springboot 1.5.6测试通过)
定义自己的ExtJpaRepository接口
@NoRepositoryBean
public interface ExtJpaRepository extends JpaRepository {
/**
* insert or dynamic update entity (will findOne first)
* @param id entity id
* @param entity entity
* @return entity
*/
T dynamicSave(ID id, T entity);
}
接口ExtJpaRepository的实现(其中getNullPropNames为自定义方法)
public class SimpleExtJpaRepository extends SimpleJpaRepository implements ExtJpaRepository {
private final EntityManager em;
public SimpleExtJpaRepository(JpaEntityInformation entityInformation, EntityManager em) {
super(entityInformation, em);
this.em = em;
}
public Simpl