hibernate 如何在jpa中编写本地查询以进行更新?

fv2wmkja  于 2023-08-06  发布在  其他
关注(0)|答案(2)|浏览(146)

我在jpa中编写了一个查询来更新客户记录,但无法获得响应。它给了我一些不相关的React

@Query(value = "UPDATE CUSTOMER SET NAME = :name, PHONE = :phone")
Customer updateWithNameAndPhone(@Param("name") String name, @Param("phone") String phone)

字符串

lztngnrs

lztngnrs1#

要显示查询更新了数据库,请使用@Modifying注解。若要指示查询是本机SQL查询,请提供nativeQuery = true参数。更新后的客户对象不需要作为返回值,因此使用void返回类型。如果希望获得更新的customer对象,可以将返回类型切换为Customer并调整函数实现。

@Query(value = "UPDATE CUSTOMER SET NAME = :name, PHONE = :phone WHERE CUSTOMER_ID = :customerId", nativeQuery = true)
@Modifying
void updateCustomerWithNameAndPhone(@Param("name") String name, @Param("phone") String phone, @Param("customerId") Long customerId);

字符串

4bbkushb

4bbkushb2#

假设您的实体类CUSTOMER具有NAME、PHONE和CUSTOMERID字段,您还可以使用下面的Java持久性查询语言(JPQL)来更新列,这些列在成功更新一行时返回整数1,在更新失败且没有更新任何行时返回整数0

@Transactional
@Modifying
@Query("UPDATE CUSTOMER c SET c.NAME = :name, c.PHONE = :phone WHERE c.CUSTOMERID = :customerId")
int updateWithNameAndPhone(@Param(value = "name") String name, @Param(value = "phone") String phone, @Param(value = "customerId") String customerId);

字符串
或者是

@Transactional
@Modifying
@Query("UPDATE CUSTOMER c SET c.NAME = ?1, c.PHONE = ?2 WHERE c.CUSTOMERID = ?3")
int updateWithNameAndPhone(String name, String phone, String customerId);

相关问题