2011-07-20 220 views
0

我需要做一個搜索,其中包括導航到子元素,然後備份到根/父。我如何使用Criteria API做這樣的事情?休眠標準API

舉個例子,我有:

Criteria crit = getSessionFactory().getCurrentSession() 
    .createCriteria(TherapistImpl.class); 

現在我需要去用戶類來獲得其與用戶相關聯的地址(組地址):

crit.createCriteria("user") 
    .createCriteria("addresses") 
    .add(Restrictions.eq("postcode", postCode)); 

但是現在我已經完成了這個工作,我需要返回來從父類TherapyImpl獲得其他一對多關聯。

crit.createCriteria("therapyProvisions") 
    .add(Restrictions.eq("type", searchByValueSelected)); 

但hibernate認爲這是指我們之前鏈接和創建的用戶標準。

所以我創建了多個標準?有沒有一種方法可以導航回樹上?

感謝您的意見 保羅

回答

1

而不是爲了user協會創建子Criteria,爲它創建一個別名:

crit.createAlias("user", "userAlias"); 
crit.add(Restrictions.eq("userAlias.addresses.postcode", postCode); 

(您可能需要創建一個子別名。addresses

然後,做同樣therapyProvisions

crit.createAlias("therapyProvisions", "therapyProvisionsAlias"); 
crit.add(Restrictions.eq("therapyProvisionsAlias.type", searchByValueSelected); 

現在你會有內部聯接。