2017-09-08 81 views
2

我在春天庫@Query在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開始
INF 15:43:46.0​​35更新:0

在DB我有3行CREATED狀態。我沒有犯錯,行不更新。

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

findAllByOrderStatus(OrderStatus.CREATED) get 3 rows 

回答

2

您所查詢的是周圍的其他方式:

@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); 
+0

一個愚蠢的錯誤(((((((((((((((((((謝謝 – user5620472

+0

你歡迎,它發生;) –