选择插入
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);
使用Select更新
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中编写相应的HQL吗?请更新。谢谢
1条答案
按热度按时间nwlqm0z11#
当你想在HQL中模拟
INSERT ... SELECT
时,你有两个选择:Native SQL
:您可以编写原生SQL查询(如您在问题中所做的那样)HQL
:在这种情况下,必须定义一个名为FIN_COA_POSTED
的POJO类,并将其Map到数据库。因此,您可以编写一个HQL选择查询来提取数据,将这些数据放在
List<FIN_COA_POSTED>
中,然后您可以在数据库中保存您的列表。关于
UPDATE
语句,你可以写一个HQL查询,然后你可以使用executeUpdate()来执行你的UPDATE
语句。如果你愿意,你可以see here关于Hibernate的操作