0
我想使用標準的API在以下情形:使用Hibernate的標準API查詢多對一一對一的關係與預測
- 我有兩個表,
Schedule
和Route
(與他們的類和映射)。 Route
與Schedule
有多對一的關係。Route
具有整數屬性sequence
。
現在我需要獲取所有這些計劃的對象,其相關的路由對象滿足以下條件:
route.sequence=no. of all Route objects associated with the given Schedule object
我曾嘗試以下標準的代碼吧:
Criteria crit = getSession().createCriteria(getPersistentClass())
.createCriteria("routes", "route")
.setProjection(Projections.projectionList()
.add(Projections.rowCount(), "routeCount"))
.add(Restrictions.not(Restrictions.ltProperty("route.sequence", "routeCount")));
但生成以下sql:
select count(*) as y0_
from schedule this_
inner join route route1_ on this_.ID=route1_.scheduleId
where route1_.sequence<y0_
和引發以下錯誤:
Unknown column 'y0_' in 'where clause'
請幫助我,如果您有任何建議。
我不明白你的僞代碼條件。你是否意味着所有的路線都需要有相同的序列號? – meriton 2009-11-19 20:49:27
一個Schedule對象可以有n個Route對象。 (其中n通常是2或3)。 Route.sequence的值可以從0到n-1。其實它是一個簡單的航班信息系統的架構。時刻表包含諸如航班號,時間表日期/時間和航班狀態等信息。構成航班路線的城市被放入路線表中(因爲每個航班可能有不同數量的航線城市)。 Route.sequence編號標識城市在飛行中的順序。 – craftsman 2009-11-20 07:15:15
我一直試圖彌補Criteria API的查詢是搜索到達給定城市X的所有航班。 – craftsman 2009-11-20 07:17:49