我有一個可供購買的會話串列。客戶購買會話后,我如何將available欄位更改為0或false以使它們不再出現在串列中?
這是我的會話物體類:
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name="date")
private String date;
@Column(name="time")
private String time;
@Column(name="available")
private boolean available;
@Column(name="side")
private String side;
這是我嘗試使用的查詢:
// Only update the available field while leaving everything else alone. Use the
// Modifying annotation when using UPDATE, INSERT and DELETE Queries
@Modifying(clearAutomatically = true)
@Query("UPDATE Session s SET s.available=0")
List<Session>updateStatusNotAvailable(Boolean notAvailable);
uj5u.com熱心網友回復:
Transactional在更新查詢上添加注釋:
@Transactional
@Modifying(clearAutomatically = true)
@Query("UPDATE Session s SET s.available = false)
List<Session> updateStatusNotAvailable();
在呼叫上述方法時:
List<Session> sessions = sessionRepository.updateStatusNotAvailable();
uj5u.com熱心網友回復:
為了在您的案例“notAvailable”中設定您的變數,您必須將您的變數注入到查詢注釋中。有兩個例子:
@Modifying(clearAutomatically = true)
@Query("UPDATE Session s SET s.available=?1")
List<Session>updateStatusNotAvailable(Boolean notAvailable);
路徑引數示例:
// path param example
@Modifying(clearAutomatically = true)
@Query("UPDATE Session s SET s.available=:notAvailable")
List<Session>updateStatusNotAvailable(@Param("notAvailable") Boolean notAvailable);
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/383649.html
