-->
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.  [ 7 posts ] 
Author Message
 Post subject: mysql -> HQL Syntax
PostPosted: Mon Oct 02, 2006 3:22 am 
Newbie

Joined: Mon Sep 18, 2006 5:47 am
Posts: 9
Hi,

wie kann ich folgende MySQL-Query in HQL ausdrücken:

SELECT artikel_id, sum(anzahl) as a
FROM counter c
group by artikel_id
order by a desc
limit 20
;


Top
 Profile  
 
 Post subject:
PostPosted: Mon Oct 02, 2006 9:12 am 
Newbie

Joined: Thu Sep 28, 2006 12:27 pm
Posts: 13
Sieht so aus, als wäre Kapitel 14.10 der Referenzdokumentation genau das, was du suchst.


Top
 Profile  
 
 Post subject:
PostPosted: Mon Oct 02, 2006 9:58 am 
Newbie

Joined: Mon Sep 18, 2006 5:47 am
Posts: 9
aus Kapitel 14.11:
Quote:
SQL functions and aggregate functions are allowed in the having and order by clauses, if supported by the underlying
database (eg. not in MySQL).


mysql akzeptiert kein order by sum()
und HQL akzeptiert kein order by alias

was nun?


Top
 Profile  
 
 Post subject:
PostPosted: Mon Oct 02, 2006 10:37 am 
Newbie

Joined: Thu Sep 28, 2006 12:27 pm
Posts: 13
Von was für einer Version von MySQL reden wir hier?

Folgendes hat eben mit MySQL 5.0.24 auf der Konsole funktioniert:
Code:
Select ART_NR, sum(V_PREIS) as first
From G_PFLANZE
Group By ART_NR
Order By first;


Und folgendes hat in HQL reibungslos geklappt:
Code:
...
List<GPflanze> ergebnisse = sess.createQuery("From GPflanze gpf Group By gpf Order By sum(gpf.VPreis)").list();
...


Top
 Profile  
 
 Post subject:
PostPosted: Mon Oct 02, 2006 10:46 am 
Newbie

Joined: Mon Sep 18, 2006 5:47 am
Posts: 9
mmh gut, ich benutze MySql 4.1.20

funktioniert bei dir folgendes auf der Konsole?

Select ART_NR, sum(V_PREIS) as first
From G_PFLANZE
Group By ART_NR
Order By sum(V_PREIS);


Top
 Profile  
 
 Post subject:
PostPosted: Mon Oct 02, 2006 11:07 am 
Newbie

Joined: Thu Sep 28, 2006 12:27 pm
Posts: 13
Ja, das funktioniert bei mir auch.

Wenn du auf 4.1.20 angewiesen bist und das nicht unterstützt wird, wäre mein nächster Vorschlag die Sortierung nach Java auszulagern.

Z.B. über java.util.Collections.sort(List l, Comparator c), wobei du noch den Comparator schrieben müsstest.
Diesem könnte man eventuell einen parametrisierten Konstruktor verpassen, so dass er nach verschiedenen Attributen je nach Bedarf ordnen kann.


Top
 Profile  
 
 Post subject:
PostPosted: Wed Oct 04, 2006 3:54 am 
Newbie

Joined: Mon Sep 18, 2006 5:47 am
Posts: 9
danke,

ich bin jetzt erstmal auf createSQLQuery() umgestiegen, da kann ich wieder mysql-Syntax verwenden.

Und beim nächsten Projekt werd ich dann wohl MySQL 5 nehmen


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 7 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.