Gab*_*man 12 java enums hibernate jpa jpql
我有一个实体类如下:
package stuff;
@Entity
class Thing {
@Id
@GeneratedValue
private Long id;
@Basic
@Enumerated
private State state;
public enum State {
AWESOME,
LAME
}
}
Run Code Online (Sandbox Code Playgroud)
如何使用JPQL和Hibernate选择状态为AWESOME的所有东西?
select t from Thing t where t.state=stuff.Thing.State.AWESOME
Run Code Online (Sandbox Code Playgroud)
......给出错误......
org.hibernate.hql.internal.ast.QuerySyntaxException: Invalid path: 'stuff.Thing.State.AWESOME'
Run Code Online (Sandbox Code Playgroud)
Gab*_*man 14
使用以下习语:
select t from Thing t where t.state=stuff.Thing$State.AWESOME
Run Code Online (Sandbox Code Playgroud)
Type$InnerType 是Java的内部类型的命名约定.
当您尝试使用点表示法时,Hibernate假定您正在尝试访问嵌套属性,在这种情况下(正确)失败.