devo una classe di entità come segue:Come dovrei riferirmi alle enumerazioni interiori (definite all'interno di un'entità) da una query JPQL usando Hibernate?
package stuff;
@Entity
class Thing {
@Id
@GeneratedValue
private Long id;
@Basic
@Enumerated
private State state;
public enum State {
AWESOME,
LAME
}
}
Come posso selezionare tutte le cose con lo stato IMPRESSIONANTE utilizzando JPQL e Hibernate?
select t from Thing t where t.state=stuff.Thing.State.AWESOME
... dà l'errore ...
org.hibernate.hql.internal.ast.QuerySyntaxException: Invalid path: 'stuff.Thing.State.AWESOME'
utilizzare meglio ancora un parametro, e superare un valore enum nel come valore del parametro ... e la query è riutilizzabile per altri valori dei parametri –
@NeilStockton: alcune query più complesse potrebbero aver senso solo nel contesto di uno stato particolare Hai ragione che in casi semplici come l'esempio, l'utilizzo di un parametro potrebbe essere più flessibile. La domanda era limitata alla sintassi;) –