这个@DynamicUpdate注解其实在我们的实体上写了以后是生效的,但是给我们的表现就是没有用,这个原因我在我想了一下是实体管理的问题
所以这个问题就简单化了,我们在更新实体类的时候,我们会发现他都会先查询数据库里面有没有以后才给我们更新,这个查询过程他就会给我们生一个实体类放在里面和我们传进去的实体类的数据进行比较,比较以后就会更新不同的值,那么问题就来了,在数据库中我们的字段都是有值的,但是我们实体类可能就是有几个有值,没有值和有值是不一样的,所以jpa就会一起更新,这个时候我们数据库就是字段的值就变空了,让我们感觉@DynamicUpdate这个注解没有用,但是其实是生效了,只是我们的实体类数据各个字段的值确实不一样,所以我们就是要解决这个问题就好了。所以我们就是要重写提供给我们的save方法
既然我们要重写这个方法,那么我们就是继承SimpleJpaRepository这个类,然后重新写save方法
通用重写为:
贴一下这个代码:
package com.shixun.jpa.repositories;
impo