使用选择
插入INSERT INTO FIN_COA_POSTED (DEBIT_AMOUNT,CREDIT_AMOUNT)
SELECT DEBIT_AMOUNT+__amount,CREDIT_AMOUNT FROM FIN_COA_POSTED WHERE
ID =(SELECT MAX(ID) FROM FIN_COA_POSTED WHERE FK_CHART_OF_ACCOUNT=5);
使用选择
进行更新UPDATE fin_bank_account AS t1 JOIN
(SELECT ID, BALANCE+__amount AS totalamount FROM fin_bank_account WHERE
ID=7)
AS t2 ON t1.id =t2.id
SET t1.balance =t2.totalamount;
注意
( IN __amount DOUBLE)
我们能在hiberante中写出corospondance HQL吗?更新plz。感谢
答案 0 :(得分:0)
当您想在HQL中模拟I NSERT ... SELECT
时,请选择两种不同的方式:
Native SQL
:您可以编写本机SQL查询(正如您在问题中所做的那样)
HQL
:在这种情况下,您必须定义一个名为FIN_COA_POSTED
的POJO类,并将其映射到您的数据库。
因此,您可以编写HQL选择查询来提取数据,将此数据放在List<FIN_COA_POSTED>
中,然后您可以在数据库中保存列表。
关于UPDATE
语句,您可以编写HQL查询,然后可以使用executeUpdate()来执行UPDATE
语句。
如果您希望可以see here关于使用Hibernate进行操作