2013-03-06 102 views
0

我有一個問題,一些休眠大師的休眠findByExample上一個多對多的

我有3個表UserCarCarList

卡洛斯是一個多對多的

user --<carlist>-- car 

我試圖使用內置的findByExample來查詢carlist。

到目前爲止,我已經找到了如何做到這一點的一個表像這樣:

List results = session.createCriteria(CarSearchList.class) 
    .add(Example.create(instance)) 
    .createCriteria("car") 
    .add(Example.create(instance.getCar())) 
    .list(); 

但我怎麼能做到這一點的車,用戶表?我想這之下,但它失敗:

List results = session.createCriteria(CarSearchList.class) 
    .add(Example.create(instance)) 
    .createCriteria("car") 
    .add(Example.create(instance.getCar())) 
    .createCriteria("user") 
    .add(Example.create(instance.getUser())) 
    .list(); 
+0

當你說「它失敗」時究竟發生了什麼?錯誤?結果不是你期望的結果? – 2013-03-06 20:43:53

回答

0

好吧,我想通了,這樣做的一種方法:

List results = session.createCriteria(CarSearchList.class) 
    .add(Example.create(instance)) 
    .createAlias("car", "car") 
    .createAlias("user", "user") 
    .add(Restrictions.eqProperty("car.carId", "user.userId")) 
    .list(); 

從手工17.4。我跳過正確的通過它。咄!任何方式,我想知道還有什麼其他的方式來做到這一點?