2016-07-13 7 views
0

Insert SelectInsert und Update mit select in 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; 

Hinweis

(IN __amount DOUBLE) 

kann w E in der Lage, corospondance HQL in Hiberante zu schreiben? Aktualisieren Sie PLZ. Dank

Antwort

0

Wenn Sie ein I NSERT ... SELECT in HQL emulieren in zwei verschiedene Möglichkeiten wählen:

Native SQL: Sie können eine native SQL-Abfrage schreiben (wie Sie in Ihrer Frage getan haben)

HQL: In diesem Fall müssen Sie eine POJO-Klasse mit dem Namen definieren und diese mit Ihrer Datenbank verknüpfen.

So können Sie eine HQL Select-Abfrage schreiben, um Daten zu extrahieren, legen Sie diese Daten in eine List<FIN_COA_POSTED> und dann können Sie auf Ihrer Datenbank Ihre Liste speichern.

Über die Anweisung UPDATE können Sie eine HQL-Abfrage schreiben und dann können Sie executeUpdate() verwenden, um Ihre UPDATE-Anweisung auszuführen.

Wenn Sie möchten, können Sie see here über Operationen mit Hibernate