[英]How should I refer to inner enums (defined within an entity) from a JPQL query using Hibernate?
I have an entity class as follows: 我有一个实体类如下:
package stuff;
@Entity
class Thing {
@Id
@GeneratedValue
private Long id;
@Basic
@Enumerated
private State state;
public enum State {
AWESOME,
LAME
}
}
How can I select all Things with state AWESOME using JPQL and Hibernate? 如何使用JPQL和Hibernate选择状态为AWESOME的所有东西?
select t from Thing t where t.state=stuff.Thing.State.AWESOME
...gives the error... ......给出错误......
org.hibernate.hql.internal.ast.QuerySyntaxException: Invalid path: 'stuff.Thing.State.AWESOME'
Use the following idiom: 使用以下习语:
select t from Thing t where t.state=stuff.Thing$State.AWESOME
Type$InnerType
is Java's naming convention for inner types. Type$InnerType
是Java的内部类型的命名约定。
When you try to use dot notation, Hibernate assumes that you're trying to access nested properties, which (properly) fails in this case. 当您尝试使用点表示法时,Hibernate会假设您正在尝试访问嵌套属性,在这种情况下(正确)失败。
select t from Thing t where t.state='AWESOME'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.