找不到具有少量参数的正确查询。 以下是来自DAO类的查询:
public Notebook findByName(String name, Integer UserId) {
return (Notebook) sessionFactory.getCurrentSession().createQuery("from Notebook where ....");
}
我想通过几个参数获取Notebook的查询对象:名称和用户ID (外键)。
我想只获得一个对象,即使他只有一个元素,也不是对象列表。
答案 0 :(得分:1)
方法createQuery(queryString)
会返回Query
,您可以在其上设置参数,例如
Query query = createQuery("from Notebook where id=:id and title=:title");
query.setParameter("id", id);
query.setParameter("title", title);
query.setMaxResults(1);
query.uniqueResult(); // fetch the object.
如果查询返回的结果多于一个结果,请务必设置setMaxResults()
,否则将抛出异常。
答案 1 :(得分:0)
第一
编辑
public Notebook findByName(String name, Integer UserId) {
return (Notebook) ....createQuery("from Notebook where ....")...uniqueResult;
}
BTW:我没有包括您为查询设置参数的部分
如果没有唯一结果,uniqueResult会抛出异常。
请确保您的查询语句非常具体,并且您包含的内容如 master.pk = child.fk (其中pk应为fk)
你可以更新并包含完整的查询语句吗?