我正在使用Spring Boot开发REST服务器应用程序。
在构建UPDATE查询时遇到了一个问题。
目前我在UserRepository中的UPDATE查询是这样的;
@Modifying
@Transactional
@Query(value ="update User u set u.user_dob=:userDOB, u.user_lastname=:userLastName, u.user_firstname=:userFirstname, u.user_streetaddress=:userStreetAddress where d.driver_id=:driverId", nativeQuery = true)
void updateUser(@Param("userDOB") String userDOB, @Param("userLastName") String userLastName, @Param("userFirstName") String userFirstName, @Param("userStreetAddress") String userStreetAddress);
但是,我不想在一个UPDATE查询中列出User的所有属性。 反正有动态构造UPDATE查询吗?
例如;
使用
更新set u.user_dob=:userDOB, u.user_lastname=:userLastName, u.user_firstname=:userFirstname, u.user_streetaddress=:userStreetAddress
或
u.user_lastname=:userLastName, u.user_firstname=:userFirstname
使用一种更新方法。
答案 0 :(得分:0)
如果您使用的是Spring Data JPA(似乎是这样),您的存储库接口可能正在扩展JpaRepository接口。
在这种情况下,您只需使用保存方法。
以下是一些很好的例子: http://www.springbyexample.org/examples/spring-data-jpa-repository.html http://www.springbyexample.org/examples/spring-data-jpa-code-example.html