Hibernate一起使用IN和LIKE子句

时间:2013-08-31 21:27:20

标签: sql hibernate

我有以下的hibernate代码,

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

使用以下括号%keyword%接收关键字并返回包含关键字的汽车列表。汽车的关键字是一个长字符串,以逗号分隔,例如关键词将是“豪华,宽敞,荣誉,4座”和另一个声明

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

返回id列表中的汽车列表。我一直试图将两个子句和IN结合在一起,从关键字列表中返回一个汽车列表,而不只是一个关键字。

如果有人可以解决问题,我将不胜感激。干杯!

1 个答案:

答案 0 :(得分:1)

您必须动态创建查询以创建类似

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

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