簡體   English   中英

我應該如何使用Hibernate從JPQL查詢中引用內部枚舉(在實體中定義)?

[英]How should I refer to inner enums (defined within an entity) from a JPQL query using Hibernate?

我有一個實體類如下:

package stuff;

@Entity
class Thing {

    @Id
    @GeneratedValue 
    private Long id;

    @Basic
    @Enumerated
    private State state;

    public enum State {
        AWESOME,
        LAME
    }
}

如何使用JPQL和Hibernate選擇狀態為AWESOME的所有東西?

select t from Thing t where t.state=stuff.Thing.State.AWESOME

......給出錯誤......

org.hibernate.hql.internal.ast.QuerySyntaxException: Invalid path: 'stuff.Thing.State.AWESOME'

使用以下習語:

select t from Thing t where t.state=stuff.Thing$State.AWESOME

Type$InnerType是Java的內部類型的命名約定。

當您嘗試使用點表示法時,Hibernate會假設您正在嘗試訪問嵌套屬性,在這種情況下(正確)失敗。

select t from Thing t where t.state='AWESOME'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM