gpt4 book ai didi

java - Spring Repository 中的@Query 不会更新行也不会出错

转载 作者:行者123 更新时间:2023-11-30 07:52:15 33 4
gpt4 key购买 nike

我在 Spring 存储库中创建自定义方法

@Transactional
@Modifying(clearAutomatically = true)
@Query("UPDATE Order co SET co.orderStatus =:status WHERE co.orderStatus =:newStatus")
int updateOrderStatus(@Param("status") OrderStatus status, @Param("newStatus") OrderStatus newStatus);

并在服务中调用它:

log.info("started");
int i = orderRepository.updateOrderStatus(OrderStatus.CREATED, OrderStatus.PENDING);
log.info("updates: " + i);

我在日志中看到:

INF 15:43:45.102 started
INF 15:43:46.035 updates: 0

在数据库中,我有 3 行具有 CREATED 状态。我没有出错,行没有更新。

@Column(name = "order_status")
@Enumerated(EnumType.STRING)
private OrderStatus orderStatus;

findAllByOrderStatus(OrderStatus.CREATED) get 3 rows

最佳答案

你的查询是相反的:

    @Transactional
@Modifying(clearAutomatically = true)
@Query("UPDATE Order co SET co.orderStatus =:newStatus WHERE co.orderStatus =:status")
int updateOrderStatus(@Param("status") OrderStatus status, @Param("newStatus") OrderStatus newStatus);

关于java - Spring Repository 中的@Query 不会更新行也不会出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46117032/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com