2016-07-13 3 views
0

Вставка с SelectВставка и обновление с выберите в HQL

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 с 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) 

может ш Можно ли написать корреспондентский HQL в hiberante? обновить plz. благодаря

ответ

0

Если вы хотите эмулировать I NSERT ... SELECT в HQL в выборе два различных способа:

Native SQL: Вы можете написать родной запрос SQL (как вы сделали в вашем вопросе)

HQL: В этом случае вы должны определить класс POJO с именем, например FIN_COA_POSTED, и сопоставить его с вашей базой данных.

Итак, вы можете написать запрос выбора HQL для извлечения данных, поместить эти данные в List<FIN_COA_POSTED>, а затем вы можете сохранить в своей базе данных свой список.

О команде UPDATE вы можете написать запрос HQL, а затем вы можете использовать executeUpdate() для выполнения вашего оператора UPDATE.

Если вы хотите, вы можете see here об операциях с Hibernate

Смежные вопросы