就像操作员不工作一样,使用spring mvc和hibernate

时间:2015-10-02 21:55:01

标签: mysql hibernate spring-mvc sql-like operator-keyword

好的,所以我仍然有点像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();
}

此处还有我控制器中的代码

    @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";
}

如果有人能帮我解决这个问题会很棒,谢谢。

1 个答案:

答案 0 :(得分:0)

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

因此,如果使用Hibernate 4.3,这将是这种方法:

image,java.lang.Object)

我觉得有点担心的是" uniqueResult"之后,如果您使用通配符进行搜索,我将始终假设可能有多个结果。如果有uniqueResult方法可能会抛出异常。

启用" show_sql"总是有帮助的。在Hibernate配置中查看Hibernate在开发过程中生成的实际sql。