/**
*复杂JPA操作 使用@Query()自定义sql语句 根据业务id UId去更新整个实体
* 删除和更新操作,需要@Modifying和@Transactional注解的支持
*
* 更新操作中 如果某个字段为null则不插入,否则插入【注意符号和空格位置】
*/
@Transactional
@Modifying
@Query(value ="insert into bi_user (user_code,user_type) values ("+"CASE WHEN :#{#users.userCode} IS NULL THEN user_code ELSE :#{#users.userCode} END ,"+"CASE WHEN :#{#users.userType} IS NULL THEN user_type ELSE :#{#users.userType} END ,"+")", nativeQuery =true)
int insertAndFlush(@Param("users") Users users);
三、update 更新时规避值 为null的字段
/**
*复杂JPA操作 使用@Query()自定义sql语句 根据业务id UId去更新整个实体
* 删除和更新操作,需要@Modifying和@Transactional注解的支持
*
* 更新操作中 如果某个字段为null则不更新,否则更新【注意符号和空格位置】
*/
@Transactional
@Modifying
@Query(value ="update bi_user a set "+"a.user_type = CASE WHEN :#{#users.userType} IS NULL THEN a.user_type ELSE :#{#users.userType} END ,"+"a.realname = CASE WHEN :#{#users.realname} IS NULL THEN a.realname ELSE :#{#users.realname} END ,"+"where a.user_code = :#{#users.userCode}", nativeQuery =true)
int updateAndFlush(@Param("users") Users users);