2014-01-24 53 views
-1

如果你有一個枚舉在您的實體是這樣的:Hibernate的標準枚舉

@Entity 
public class AA{ 
    @Embedded 
    public BB b; 
... 
} 

@Embeddable 
public class BB{ 
    @Enumerated(EnumType.STRING) 
    @Column(columnDefinition = "varchar(50)") 
    private CC c; 
    ... 
} 

public enum CC{ 
    D("DDD","123"), 
    E("EEE","456"); 
} 

然後用hibernate的條件查詢是這樣的:

Criteria crit = sessionFactory.getCurrentSession().createCriteria(AA.class); 
List<AA> list = crit.add(Restrictions.eq("b.c", CC.D)).list(); 
+0

你想知道什麼是不是從你的問題清楚了嗎? – Prateek

+0

我現在沒有問題,只是想向其他人展示可能遇到此問題的人 –

+0

你的問題是什麼? – IntelliData

回答

1

您需要爲嵌入對象創建別名,然後訪問它通過別名的性質。

做這樣

Criteria crit = sessionFactory.getCurrentSession().createCriteria(AA.class,"a"); 
crit.createAlias("a.b", "b"); 
List<AA> list = crit.add(Restrictions.eq("b.c", CC.D)).list(); 
+0

我沒有創建別名,但它運行正常,你能告訴我爲什麼嗎? –