您可以使用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
持久性。但是,我认为,对于一个记录来说并不重要(并且由于随机效应,缓存等原因它可能会变慢)。
感谢您的想法兄弟。 –