2015-09-01 133 views
0

enter image description hereNSFetchRequestGroupBy屬性爲多對多關係

我一直在覈心數據中保留一些記錄。 記錄有多對多的關係。 通過多對多關係搜索持久數據似乎很簡單,我使用「SUBQUERY」來實現它。我在分組記錄時遇到問題。

我需要一羣「ZCMORecord」由「ZCMORecordValue」

的stringValue的由於「ZCMORecordValue」是一個一對多的關係。

我甚至需要將ZCMORecords與一個或多個「ZCMORecordValue」組合起來。

NSManagedObjectContext *context= [[[UIApplication sharedApplication]delegate ]managedObjectContext]; 

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; 
NSEntityDescription *valueDesc = [NSEntityDescription entityForName:@"ZCMORecord" inManagedObjectContext:context];  

[fetchRequest setResultType:NSDictionaryResultType]; 
[fetchRequest setFetchLimit:PAGE_SIZE]; 

NSPropertyDescription *recordRelationShip = [fetchRequest.entity.relationshipsByName objectForKey:@"recordValueSet.stringValue"]; 

[fetchRequest setPropertiesToGroupBy:[NSArray arrayWithObjects:recordRelationShip,nil]]; 
NSError *error; 
id fetchedObjects = [context executeFetchRequest:fetchRequest error:&error]; 

當我嘗試這個時發生錯誤。

與GROUP查詢SELECT子句BY組件只能包含在GROUP BY命名 性質或聚合函數

我需要在組獲取記錄。 我無法弄清楚要在「setPropertiesToGroupBy:」和「setHavingPredicate:」中設置什麼來實現正確的結果。

OKAY !!我如何存儲數據的示例

ZCMORecordValues 


id stringValue<NSString> dateValue<NSDate>  record 


name  Alex      -   record1<ZCMORecord> 

DOB  -      10/10/1990  record1<ZCMORecord> 

name  Anto      -   record2<ZCMORecord> 

DOB  -      05/05/1990  record2<ZCMORecord> 

name  Max      -   record3<ZCMORecord> 

DOB  -      10/10/1990  record3<ZCMORecord> 

name  Mary      -   record4<ZCMORecord> 

DOB  -      01/01/1990  record4<ZCMORecord> 

現在我想將我的「ZCMORecord」與DOB進行分組。

上改變模式,方便分組任何建議,也歡迎

+0

如何通過多種方式將圖像分組?你需要展示你正在尋找什麼樣的結果的例子,並且我猜你需要在獲取之後做到這一點(或者在模型中添加其他信息以促進) – Wain

+0

@Wain可以說我把它們分組。我怎樣才能使它工作。我如何設置havingPredicate和propertiesToGroupBy?因爲我有大量的記錄,所以我無法做到。 – riyaz

+0

這一件事將在實體本身上,而不是一對多關係結束時的實體 – Wain

回答

0

要做到這一點,最簡單的方法是使用一個NSFetchedResultsController,獲取該記錄值,並通過stringValue作爲sectionNameKeyPath

+0

我需要groupBy dateValve和stringValue在同一時間 – riyaz

+0

你可以做第一個通過獲取的結果控制器,第二個在內存中。如果你能解釋你的用例,這也會有所幫助 - 我懷疑這是否合理。 – Mundi

+0

爲了更好的理解,我改變了我的問題。請建議一種方法,我可以通過提取結果控制器進行分組@Mundi – riyaz

相關問題