有没有办法在Spring Framework中使用UPDATE查询和动态属性?

时间:2016-03-15 23:18:17

标签: spring rest jpa spring-boot crud

我正在使用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

使用一种更新方法。

1 个答案:

答案 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