在hibernate中为两个字符匹配查询
我正在使用Hibernate和mysql 我在java中有一个关键字,需要从MySQL中检索该关键字的记录在hibernate中为两个字符匹配查询,hibernate,Hibernate,我正在使用Hibernate和mysql 我在java中有一个关键字,需要从MySQL中检索该关键字的记录 Restrictions.like("resume Text", keyword, Match Mode.ANYWHERE)); 当我以测试的方式发送关键字时,它可以工作;当我以示例的方式发送关键字时,它可以工作;但当我以测试的方式发送关键字时,示例失败,不返回任何结果 任何解决方案 谢谢您不能将多个值传递给的单值值参数 尝试使用构造逻辑,如下所示: Restrictions.o
Restrictions.like("resume Text", keyword, Match Mode.ANYWHERE));
当我以测试的方式发送关键字时,它可以工作;当我以示例的方式发送关键字时,它可以工作;但当我以测试的方式发送关键字时,示例失败,不返回任何结果
任何解决方案
谢谢您不能将多个值传递给的单值
值
参数
尝试使用构造逻辑,如下所示:
Restrictions.or(
Restrictions.like("resume Text", "test", Match Mode.ANYWHERE),
Restrictions.like("resume Text", "sample", Match Mode.ANYWHERE)
);
或者改为使用,根据您试图实现的匹配逻辑,您不能将多个值传递给的单值
值
参数
尝试使用构造逻辑,如下所示:
Restrictions.or(
Restrictions.like("resume Text", "test", Match Mode.ANYWHERE),
Restrictions.like("resume Text", "sample", Match Mode.ANYWHERE)
);
或者改为使用,这取决于您试图实现的匹配逻辑。波希米亚语是正确的,但如果您有2个以上的Or子句,则可能最好使用析取(Or)或连词(and):
波希米亚语很合适,但如果你有2个以上的or子句,那么你可能最好使用析取(or)或连词(and):
谢谢,你是对的,但是如果用户在一个关键字中输入sample,test,或者甚至在搜索框中输入test,sample,test,test2,那么我将如何将一个关键字分配到4中,并使用4个不同的子句。简单,将
或clause。在for循环中为每个逗号分隔的值添加(…)
。谢谢,你是对的,但是如果用户输入sample,在一个关键字中进行测试,或者甚至在搜索框中进行测试、采样、测试、测试2,然后我将如何将一个关键字分配到4个关键字中并使用4个不同的子句。简单地说,将或clause。在for循环中为每个逗号分隔的值添加(…)
。