我想将一个简单的查询转换为 hibernate 状态
INSERT INTO TRXENTRIES (AMOUNT, BALANCE)
VALUES (2500, (SELECT CURRENTBALANCE FROM CUSTOMER WHERE CUSTOMERID=1)+2500))
hibernate 中使用 save() 的替代解决方案是什么?
更新我!
最佳答案
你必须:
- 创建一个实体来映射您的 INSERT 表(即 TrxEntry)
- 编写一个 HQL 查询来填充您的对象
- 使用 session.merge() 保存实体
或者,您可以使用 session 对象的方法 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;
}
}
总部:
String hql = "select new TrxEntry(o.amount, o.balance)
from otherEntry o";
如果你想计算你的 o.balance 作为另一个子查询,你可以毫无问题地完成
你查询的结果进去了
Query q = session.createQuery(hql);
session.merge(q);
合并提供以保存您的实体
关于java - 将一个简单的查询转换为 hibernate ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18457999/