0

我有以下休眠代码,

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

它接受带有以下括号 %keyword% 的关键字,并返回包含该关键字的汽车列表。汽车的关键字是一个用逗号分隔的长字符串,例如对于汽车,关键字将是“豪华、宽敞、honta、4 座”和另一个语句

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

它从 id 列表中返回汽车列表。我一直在尝试将两个子句(如和 IN)组合在一起,以从关键字列表中返回汽车列表,而不仅仅是单个关键字。

如果有人能提供一些启示,将不胜感激。干杯!

4

1 回答 1

1

您必须动态创建一个查询来创建类似

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

执行此操作的最佳工具是Criteria API(请参阅第三个代码片段,使用析取,以获取以 分隔的限制列表的示例or)。

于 2013-08-31T21:41:13.173 回答