Spring 存储库中的@Query 未更新行且未收到错误
@Query in Spring Repository not update rows and not get error
我在 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);
我在 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);