2013-08-31 28 views
0

有後續的Hibernate代碼,休眠使用IN和LIKE子句我一起

session.createQuery("from Car as car where car.keywordName like :keyword").setString("keyword", keyword).list(); 

這需要在以下括號%關鍵字%的關鍵詞,並返回其具有包含關鍵字汽車名單。汽車的關鍵字是一個長字符串,用逗號分隔。對於汽車的關鍵詞將是「豪華,寬敞,鴻泰,4seater」和另一份聲明

session.createQuery("from Car as car where car.carId IN (:idList)").setParameterList("idList", idList).list(); 

從ID列表返回汽車的名單。我一直試圖將兩個子句如IN和IN結合在一起,以從關鍵字列表中返回汽車列表,而不僅僅是一個關鍵字。

如果有人能夠說出一些亮點,我們將不勝感激。乾杯!

回答

1

你必須動態地創建一個查詢,以創建像

select car from Car car 
where car.keywordName like :k1 
or car.keywordName like :k2 
or car.keywordName like :k3 
... 

這樣做是Criteria API(見第三代碼段,使用脫節,對列表的一個例子的最佳工具與or分開限制)。

+0

非常感謝!我認爲這一定是深夜睏倦。但你讓我在那裏! –