2013-04-21 48 views
-1

我对hibernate相当陌生,想知道是否有人能帮助我。我几乎写了命令我怎么会在SQL中做它我尝试了几种变化没有工作想知道是否有人可以指出如何在休眠中做这样的命令。如何在休眠模式下创建一个复杂的查询

Query query = session.createQuery("from customer where customer_city = Harrison" 
      + " AND where customer_street = main" + " AND where customer_name = Hayes"); 
+0

是否http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/querysql.html帮助 – 2013-04-21 22:57:47

回答

0

我看到一些可能导致问题的事情。首先,where子句在每个and之后重复。其次,你在你的HQL查询中有字面值,据我所知不支持。通常情况下,执行这样的查询代码将是这个样子:

String queryString 
    = "from customer " 
    + "where customer_city = ? " 
    + "and customer_street = ? " 
    + "and customer_name = ? "; 
Query query = session.createQuery(queryString); 
query.setString(0, "Harrison"); 
query.setString(1, "main"); 
query.setString(2, "Hayes"); 
List<Customer> customers = (List<Customer>) query.list(); 
+0

我我得到一个无法实例化类型查询错误,只需要更改Query query = session.createQuery(queryString);这和它的工作。感谢您的帮助。 – neuroh 2013-04-22 00:51:59

+0

啊,是的,session.createQuery(queryString)是正确的。我纠正了我的答案。 – 2013-04-22 03:11:29