Ich habe eine Entity-Klasse wie folgt:Wie soll ich auf innere Enums (definiert in einer Entität) aus einer JPQL-Abfrage mit Hibernate?
package stuff;
@Entity
class Thing {
@Id
@GeneratedValue
private Long id;
@Basic
@Enumerated
private State state;
public enum State {
AWESOME,
LAME
}
}
Wie kann ich alle Dinge auswählen, mit Zustand mit JPQL FANTASTISCHEN und Ruhezustand?
select t from Thing t where t.state=stuff.Thing.State.AWESOME
... gibt den Fehler ...
org.hibernate.hql.internal.ast.QuerySyntaxException: Invalid path: 'stuff.Thing.State.AWESOME'
besser noch einen Parameter verwenden, und einen Enum-Wert in als Parameterwert übergeben ... und die Abfrage ist wiederverwendbar für andere Parameterwerte –
@NeilStockton: Einige komplexere Abfragen könnten nur dann sinnvoll im Kontext machen von ein bestimmter Staat. Sie haben recht, dass in einfachen Fällen wie dem Beispiel die Verwendung eines Parameters flexibler sein kann. Die Frage war auf die Syntax beschränkt;) –