我想将一个简单的查询转换为hibernate
INSERT INTO TRXENTRIES (AMOUNT, BALANCE)
VALUES (2500, (SELECT CURRENTBALANCE FROM CUSTOMER WHERE CUSTOMERID=1)+2500))
什么是使用save()的hibernate中的替代解决方案?
更新我!
答案 0 :(得分:0)
你必须:
或者,您可以使用会话对象的createSqlQuery方法来执行SQL查询,并使用session.executeUpdate()完成它们。
样品:
实体TrxEntry:
public class TrxEntry {
private Double amount;
private Double balance;
-- add your get / set properties
public Trxentry (Double amount, Double balance) {
this.amount = amount;
this.balance = balance;
}
}
HQL:
String hql = "select new TrxEntry(o.amount, o.balance)
from otherEntry o";
如果你想将你的o.balance计算为另一个子查询,你可以毫无问题地进行
您的查询结果是
Query q = session.createQuery(hql);
session.merge(q);
合并提供保存您的实体