【问题标题】:Hibernate using IN and LIKE clause togetherHibernate 同时使用 IN 和 LIKE 子句
【发布时间】:2013-08-31 21:27:19
【问题描述】:

我有以下休眠代码,

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)组合在一起,以从关键字列表中返回汽车列表,而不仅仅是单个关键字。

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

【问题讨论】:

    标签: sql hibernate


    【解决方案1】:

    你必须动态地创建一个查询来创建类似的东西

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

    最好的工具是Criteria API(参见第三个代码sn-p,使用析取,以or分隔的限制列表示例)。

    【讨论】:

    • 非常感谢!我想这一定是深夜困倦。但你让我到了那里!
    猜你喜欢
    • 1970-01-01
    • 2016-03-27
    • 1970-01-01
    • 2016-05-21
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多