Hibernate - select count(*) as anzahl funktioniert nicht

Thomas Reihl

Mitglied
Hallo Community,

ich wollte in der Hibernate-Console eine simple HQL-Anfrage testen. Nur leider meint die console, dass der untenstehende Query nicht korrekt sei:
PHP:
select count(bescheid.schueler.personId) as anzahl   
from Bescheid as bescheid  
group by bescheid.schueler.personId

Fehlermeldung:
1 errors occurred while listing (and calling getPathNames).
net.sf.hibernate.QueryException: , expected in SELECT [
select count(bescheid.schueler.personId) as anzahl from mypackage.bescheid.Bescheid as bescheid group by bescheid.schueler.personId]


Vielen Dank für eure Hilfe.
 
Hab zwar selber noch nicht mit der HQL gearbeitet, aber in den mir bekannten Beispielen wird immer ohne das 'as' gearbeitet. also:
Code:
select count(b.schueler.personId) 
from Bescheid b  
group by b.schueler.personId

Allerdings ist mir nicht klar, was Du mit der Query erreichen willst.. also, wozu das group by?
 
Ob das as steht oder nicht, macht für die Console keinen Unterschied. Sie mag beides nicht.

Der Query ist nur ein Teil eines gesamten Querys. Beim Austesten wo der Fehler liegt, ist eben dieser Rest überig geblieben.

Umsetzten möchte ich fogenden SQL-Query:
PHP:
SELECT count("B.anzahl"), B.Anzahl 
FROM
   (SELECT count("SCHUELER_ID") as "Anzahl", SCHUELER_ID  From Bescheid GROUP BY SCHUELER_ID)  as  B 
GROUP BY B.Anzahl
 
Wie gesagt, das Statement sollte ein anderes als das gepostete sein. Hab das jetzt anders gelöst, sodass ich eine Abfrage mach und das Ergebnis danach weiter verarbeite.

Ich vermute eher, dass ich den Wert, den ich mit as definieren möchte in der entsprechenden
*.hbm.xml als Property definieren muss.

Z.B:
PHP:
<property name="anzahl" type="java.lang.Integer" length="3">
		<column name="ANZAHL"
			sql-type="NUMERIC(3,0)"/>
</property>


Edit:
Ich habe es eben mal getestet. Das Property wurde in die entsprechende *.hbm.xml aufgenommen, sowie als Eigenschaft dem Objekt zugeordnet.
Resultat: Geht trotzdem nicht.
 
Zuletzt bearbeitet:
Zurück