【问题标题】:Is there a way to use UPDATE query with dynamic attributes in Spring Framework?有没有办法在 Spring Framework 中使用带有动态属性的 UPDATE 查询?
【发布时间】:2016-07-01 15:33:21
【问题描述】:

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

使用一种更新方法。

【问题讨论】:

    标签: spring rest jpa spring-boot crud


    【解决方案1】:

    如果您使用的是 Spring Data JPA(您似乎这样做了),那么您的存储库接口可能正在扩展 JpaRepository 接口。

    在这种情况下,您可以简单地使用 save 方法。

    这里有一些很好的例子: http://www.springbyexample.org/examples/spring-data-jpa-repository.html http://www.springbyexample.org/examples/spring-data-jpa-code-example.html

    【讨论】:

      猜你喜欢
      • 2021-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-21
      • 2017-12-15
      • 1970-01-01
      相关资源
      最近更新 更多