2011-02-22 153 views
0

這裏的ORM的查詢是我的數據庫架構的一部分: enter image description here與傳遞依賴

所以我使用的表格頁面,點和項目生成我的網頁佈局。對每個項目也綁定一個itemData。我所有的表格模型都已創建並定義了它們的關係。我可以通過下面的查詢結果循環生成頁面:

<cfset variables.page = EntityLoad("Page", {id=arguments.id}, true)> 

現在的問題是當我試圖做同樣的事情,但只加載itemsData從單一的「愛迪」這是一個想法在法國。我不能想辦法與entityLoad做到這一點,所以我試着使用HQL:

<cfset variables.page = ORMExecuteQuery(" 
    select p 
     from Page p 
     left join p.points po 
     left join po.items it   
     left join it.itemsData id 
     where p.id = :pid and id.idIdee = :iid", {pid=arguments.id, iid=session.user.idee}, true)> 

這似乎接近它,但是這不是......我有時會超過1行等等等等

任何ORM大師都知道我該如何處理這個問題?

回答

1

使用NH查詢時,您始終可以看到完整的對象。這意味着,你不能用查詢過濾itemsData的想法(你可以通過想法找到itemsData,但是這些itemsData將始終是完整的,並附有所有的想法)。

在NH中,您可以使用過濾器。

支持從idee到itemsData的鏈接會容易得多。然後你只需加載Idee(你有它的id),然後你有了它的ItemsData。

class Idee 
{ 
    IList<ItemsData> ItemsData { get; private set; } 
} 

你只需要將它映射爲反包。

+0

好吧,不是先加載我的頁面,我不得不加載Idee,然後我可以去我的頁面。謝謝。 – fbernier 2011-02-23 15:26:33