您可以使用HQL了點。舉個例子,如果你有一個實體
@Entity
@Table(name = "app_balances")
public class Balance {
@Id
@GeneratedValue
@Column(name = "f_pid")
private Long pid;
@Column(name = "f_load_balance")
private Integer loadBalance;
}
對應HQL更新loadBalance
String query = "update Balance set loadBalance = loadBalance + 1 where pid = :balancePid";
Query query = session.createQuery(query);
query.setParameter("balancePid", balancePid);
query.executeUpdate();
它轉換爲SQL相似,並通過數據庫中執行。它比session.update()
快一點,因爲你不需要加載Balance
持久性。但是,我認爲,對於一個記錄來說並不重要(並且由於隨機效應,緩存等原因它可能會變慢)。
感謝您的想法兄弟。 –