示例代碼如下:
/** *復雜JPA操作 使用@Query()自定義sql語句 根據業務id UId去更新整個實體 * 刪除和更新操作,需要@Modifying和@Transactional注解的支持 * * 更新操作中 如果某個字段為null則不更新,否則更新【注意符號和空格位置】 * * @param huaYangArea 傳入實體,分別取實體字段進行set * @return 更新操作返回sql作用條數 */ @Modifying @Transactional @Query("update HuaYangArea hy set " + "hy.areaName = CASE WHEN :#{#huaYangArea.areaName} IS NULL THEN hy.areaName ELSE :#{#huaYangArea.areaName} END ," + "hy.areaPerson = CASE WHEN :#{#huaYangArea.areaPerson} IS NULL THEN hy.areaPerson ELSE :#{#huaYangArea.areaPerson} END ," + "hy.updateDate = CASE WHEN :#{#huaYangArea.updateDate} IS NULL THEN hy.updateDate ELSE :#{#huaYangArea.updateDate} END ," + "hy.updateId = CASE WHEN :#{#huaYangArea.updateId} IS NULL THEN hy.updateId ELSE :#{#huaYangArea.updateId} END " + "where hy.uid = :#{#huaYangArea.uid}") int update(@Param("huaYangArea") HuaYangArea huaYangArea);