我正在使用Hibernate和mysql 我的java中有一个关键字,我需要从MySQL中检索记录
Restrictions.like("resume Text", keyword, Match Mode.ANYWHERE));
当我将关键字发送为测试时,它可以正常工作,当我将关键字发送为示例时,当我将关键字发送为测试时,样本它失败了,不回复任何结果。
任何解决方案
感谢
答案 0 :(得分:1)
您无法将多个值传递给like的单值value
参数。
尝试使用Restrictions.or构建逻辑,如下所示:
Restrictions.or(
Restrictions.like("resume Text", "test", Match Mode.ANYWHERE),
Restrictions.like("resume Text", "sample", Match Mode.ANYWHERE)
);
或者改为使用Restrictions.and,具体取决于您尝试实现的匹配逻辑
答案 1 :(得分:0)
波西米亚语是现货,但如果你有超过2个或者子句,那么你可能更好地使用Disjunction(或)或Conjunction(和):
Disjunction orClause = Restrictions.disjunction();
orClause.add(Restrictions.like("resume Text", "test", Match Mode.ANYWHERE));
orClause.add(Restrictions.like("resume Text", "test", Match Mode.ANYWHERE));
orClause.add(...)
criteria.add(orClause);