2013-12-19 37 views
0

我有2個表:內連接處於休眠SQL:

  1. 券(映射在hibernate.cfg.xml爲"Coupon"
  2. 企業(在hibernate.cfg.xml映射爲"Business"

Business每一行有以下欄目:

  • Business_id
  • 緯度

Coupon每一行有以下欄目:

  • ID
  • Business_id(Which business this coupon is relevant to?
  • Expier_date

我想所有的優惠券與10公里範圍內的人有關。

因此,我試圖獲得latitude < 30的所有企業優惠券。

return (List<Coupon>) s.createQuery(
    "from Coupon inner join Business on business_id where Business.latitude < 30").list(); 

但收到以下異常:

org.apache.jasper.JasperException: org.hibernate.hql.ast.QuerySyntaxException: unexpected token: on near line 1, column 42 [from entities.Coupon inner join Business on business_id where Business.latitude < 30] 

如果我錯過了所有必要的信息,請讓我知道,我添加它。

使用mySQL數據庫。

回答

0

您的查詢不是有效的HQL查詢關於是錯誤的。 View this。這可能是運行:

from Coupon as c inner join c.business as b where b.latitude < 30 

The relationship must be correctly mapped.

+0

不工作。 「c.business」應該是什麼? – Billie

+0

c.business意味着在類Coupon中有一個名爲Business的業務屬性。如果您的Copun類具有Business類型的任何屬性,則兩個表之間的關係未映射。 – djvazquez

+0

我沒有。我如何添加關係?它應該是一對一的嗎? – Billie