我有以下的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结合在一起,从关键字列表中返回一个汽车列表,而不只是一个关键字。
如果有人可以解决问题,我将不胜感激。干杯!
答案 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
分隔的限制列表的示例,请参阅第三个代码段,使用析取。)