| 

.NET C# Java Javascript Exception

HQL-Abfragen funktionieren nicht mit SELECT

Dies ist das Archiv des ehemaligen Forums zum Thema Groovy, Grails, Griffon und Bean Scripting Framework, welches unter groovy-forum.de existierte. Die neue Adresse des Groovy-Forums ist: http://codekicker.de/fragen/themen/groovy.


HQL-Abfragen funktionieren nicht mit SELECT

christian - 27.01.2008 17:58
In meinen Versuchen funktioniert kaum eine HQL-Abfrage (Hibernate Query Language), obwohl sie nach der HQL-Dokumenation richtig sein müssten.

Ich habe zum Beispiel folgende Klasse:
class Buch {
  String titel
  int seiten
}
In den zugehörigen Controller habe ich eine Closure für die Suche eingefügt:
    def search = {
        def ergebnis = Buch.findAll("select b from Buch b")
        [buchList:ergebnis]
    }
Für meinen Test habe ich die list.gsp nach search.gsp kopiert. Ein Aufruf von search führt zu
org.codehaus.groovy.grails.orm.hibernate.exceptions.GrailsQueryException: Invalid query [select b from Buch b] for domain class [class Buch]
Die einfachste aller Abfragen "from Buch" funktioniert; "from Buch b where b.titel like 'B%'" funktioniert auch noch. Aber sobald select ins Spiel kommt geht es nicht mehr, Beispiel: "select b.titel from Buch b where b.titel like 'B%'"

Was mache ich falsch?

Gruß
Christian


Re: HQL-Abfragen funktionieren nicht mit SELECT

christian - 27.01.2008 19:07
Das Problem war die unvollständige Referenzdokumentation! Für die Ausführung der Abfrage mit select ist die Methode executeQuery(...) notwendig.
def search = {
  def ergebnis = Buch.executeQuery("select b from Buch b")
  [buchList:ergebnis]
}
Das funktioniert!

Gruß
Christian


Re: HQL-Abfragen funktionieren nicht mit SELECT

BlackHawkDC - 28.01.2008 07:45
mmh ...

danke für den Hinweis ... eine weitere kleine Pitfall.

hast du den DokuBug bei grails gepostet?


Re: HQL-Abfragen funktionieren nicht mit SELECT

christian - 28.01.2008 10:27
Wenn man es weiß und sehr genau liest, könnte man es aus der Doku tatsächlich herauslesen ;-) Aber ich habe trotzdem mal im Issue Tracker auf diese Schwäche hingewiesen.

Gruß
Christian


Stelle deine Groovy-Frage jetzt!


Diese Seite zeigt den Thread "HQL-Abfragen funktionieren nicht mit SELECT" der ehemaligen Webseite groovy-forum.de, welche durch einen Serverunfall zerstört wurde. codekicker.de hat viele Konversationen über die beliebte Programmiersprache Groovy und zugehörige Frameworks wie das Grails-Framework retten können.

Hast Du eine Frage zum Thema Groovy, Grails oder allgemein Java? Viele ehemalige groovy-forum.de Mitglieder beantworten dir auf codekicker.de deine Frage! Stelle jetzt eine Frage!

Viele weitere Diskussionen zu Grails und Groovy befinden sich auf der Threadübersicht des alten groovy-forum.de.