2013-04-21 68 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