一说是实体类添加注解:

@Entity
@DynamicInsert(true)  // true 是默认值,写不写一样  
@DynamicUpdate(true)  // true 是默认值,写不写一样  

实测,并没有效果。

最终实现方法,通过反射自己来写一个方法:
student类的代码:

@Entity
@DynamicInsert(true)  // true 是默认值,写不写一样  
@DynamicUpdate(true)  // true 是默认值,写不写一样  
public class Student {
	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	private Integer id;
	@Column
	private String name;
	@Column
	private Integer age;
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public Integer getAge() {
		return age;
	}
	public void setAge(Integer age) {
		this.age = age;
	}
}

jpa接口的代码:

public interface StudentRepository extends JpaRepository<Student, Integer>{
}

测试类,以及反射方法的代码:

@SpringBootTest
public class StudentDaoTest {
	@Autowired
	private StudentRepository StudentRepository;

	@Test
	public void save() {
		Student student = new Student();
		student.setName("lisi");
		
		Optional<Student> optional = StudentRepository.findById(1);
		Student origin = optional.get();
		updateEntity(student,origin);
		
		StudentRepository.save(origin);
	}

	 public  <T> T updateEntity(T entity,T oldEntity){
	       Class clazz = entity.getClass();
	       Field[] fields = clazz.getDeclaredFields();
	       for (Field field : fields){  // 遍历属性
	           try {
	               PropertyDescriptor pd = new PropertyDescriptor(field.getName(), clazz);
	               Method readMethod = pd.getReadMethod(); //获取属性的get方法
	               Method writeMethod= pd.getWriteMethod(); //获取属性的set方法
	               if (readMethod.invoke(entity)!=null){   // 如果这个属性不为null
	            	   // old对象set(entity.get())  old对象将属性值设置为entity的属性值
	                   writeMethod.invoke(oldEntity,readMethod.invoke(entity)); 
	               }
	           }catch (Exception e){

	           }
	       }
	       return oldEntity;
	   }
}

数据库初始为:
Jpa save的时候,null值不进行更新的实现方案(通过反射)_属性值

执行完测试类之后, age不为null,zhangsan更新为lisi,表示成功。
如图:
Jpa save的时候,null值不进行更新的实现方案(通过反射)_默认值_02