-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 3 posts ] 
Author Message
 Post subject: [How-To] HQL oder SQL Update query
PostPosted: Thu Feb 19, 2009 3:00 am 
Newbie

Joined: Wed Dec 19, 2007 5:36 am
Posts: 2
Hallo zusammen,

ich nutze Hibernate in einem Spring Container und bin gerade dabei eine alte MS Access Anwendung in eine MySQL - Spring Web-Anwendung zu konvertieren.
Das klappt auch alles wunderbar, allerdings habe ich bei folgendem SQL-Statement aus der alten Access-Anwendung ein Problem:

"UPDATE Tabelle A as A INNER JOIN Tabelle as B ON (B.x = A.x) SET A.data = B.date, A.data1= -1 WHERE (A.where = 123);"

Ich finde in der Doku leider keinen Hinweis auf den Korrekten HQL Syntax für eine solche Abfrage. Versuche ich das SQL direkt auszuführen, bekomme ich eine Fehlermeldung, dass UPDATE Operationen nur über HQL unterstützt werden... Wie kann ich eine derartige Update Query mit Hibernate ausführen?

Kann mir jemand einen Tritt in die richtige Richtung geben ??

DANKE

Gruß
Sebastian


Top
 Profile  
 
 Post subject:
PostPosted: Thu Feb 19, 2009 3:32 am 
Expert
Expert

Joined: Thu Jan 08, 2009 6:16 am
Posts: 661
Location: Germany
Die Fehlermeldung ist mir neu.
Meine Beispielquery
Code:
session.createSQLQuery("update customer set someproperty = 1").executeUpdate();
funktioniert wunderbar.

Wie sieht denn dein code aus?

_________________
-----------------
Need advanced help? http://www.viada.eu


Top
 Profile  
 
 Post subject:
PostPosted: Thu Feb 19, 2009 6:18 pm 
Senior
Senior

Joined: Thu Jan 08, 2009 3:48 pm
Posts: 168
Kann es sein dass Du Klassennamen anstelle von Tabellenbezeichnungen verwendet hast?

Ausserdem bin ich mir nicht sicher ob ein UPDATE eine Join beinhalten darf.
Deine Query würde sicher aber auch mit einem subselect lösen lassen:
set a.date = (select date from table_b b where b.x=a.x) etc

Und ja, Dein Code würde helfen...


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 3 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.