gpt4 book ai didi

mysql - 就像运算符(operator)不工作一样,使用 spring mvc 和 hibernate

转载 作者:行者123 更新时间:2023-11-30 22:34:41 25 4
gpt4 key购买 nike

好的,所以我对 Java 和 hibernate 还是有点新手,我正在尝试在我的数据库中搜索问题/答案集,如果我输入准确的内容,我可以很好地调出该集问题,但是当我使用 like 运算符时没有任何效果,而且我真的不确定该怎么做。我只是在搜索问题,它与答案是同一个对象的一部分,所以我也只是用它来提取答案。

这是我在 QuestionAnswerDao 中的代码

    public QuestionAnswerSet getQuestionAnswerSetByQuestion(String question)
{
Session session = (Session) em.getDelegate();

return (QuestionAnswerSet) session.createCriteria(QuestionAnswerSet.class).add(Restrictions.eq("question", "%"+question+"%")).uniqueResult();
}

这也是我 Controller 中的代码

    @RequestMapping(value="search", method=RequestMethod.GET)
public String searchGet (ModelMap model, HttpServletRequest request)
{
SearchForm searchForm = new SearchForm();

model.put("searchForm", searchForm);
return "app/search";
}

@RequestMapping(value="search", method=RequestMethod.POST)
public String searchPost (@ModelAttribute("searchForm") SearchForm searchForm, ModelMap model, HttpServletRequest request)
{
QuestionAnswerSet questionAnswerSetByQuestion = questionAnswerDao.getQuestionAnswerSetByQuestion(searchForm.getSearchString());
model.put("searchResult", questionAnswerSetByQuestion);

return "app/search";
}

如果有人能帮我解决这个问题,那就太好了,谢谢。

最佳答案

我在你的例子中没有看到“喜欢”,但我认为你只需要改变Restrictions.eq ro Restrictions.like.

所以如果使用 Hibernate 4.3,这将是这个方法:

https://docs.jboss.org/hibernate/orm/4.3/javadocs/org/hibernate/criterion/Restrictions.html#like(java.lang.String , java.lang.Object)

我认为之后的“uniqueResult”有点令人担忧,如果您使用通配符进行搜索,我总是会假设可能会有不止一个结果。如果存在 uniqueResult 方法,则可能会抛出异常。

此外,在 Hibernate 配置中启用“show_sql”总是有助于查看 Hibernate 在开发过程中生成的实际 sql。

关于mysql - 就像运算符(operator)不工作一样,使用 spring mvc 和 hibernate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32916421/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com