Articles と Authors という 2 つのテーブルがあります。各記事には多くの著者がいて、同じ著者が複数の記事に含まれる場合があります。私のJson応答は次のようになります。
{
"Articles": [
{
"artName": "ABC",
"artId": "1",
"Authors": [
{
"autName": "James",
"autId": "200",
"email": "james@xyz.com"
},
{
"autName": "Mark",
"autId": "201",
"email": "mark@xyz.com"
},
{
"autName": "Robert",
"autId": "202",
"email": "robert@xyz.com"
}
]
},
{
"artName": "BCD",
"artId": "2",
"Authors": [
{
"autName": "James",
"autId": "200",
"email": "james@xyz.com"
},
{
"autName": "Ben",
"autId": "204",
"email": "ben@xyz.com"
},
{
"autName": "Rayon",
"autId": "205",
"email": "rayon@xyz.com"
}
]
}
]
}
マッピング:
RKObjectManager *manager = [[RestKit sharedDataManager] objectManager];
RKEntityMapping *ArticleMapping = [RKEntityMapping mappingForEntityForName:@"Articles" inManagedObjectStore:manager.managedObjectStore];
ArticleMaping.identificationAttributes = @[@"artId"];
ArticleMaping addAttributeMappingsFromDictionary:@{
@"artId": @"artId",
}];
RKEntityMapping *AuthorMapping = [RKEntityMapping mappingForEntityForName:@"Authors" inManagedObjectStore:manager.managedObjectStore];
AuthorMapping.identificationAttributes = @[@"autId"];
AuthorMapping addAttributeMappingsFromDictionary:@{
@"autId": @"autId",
@"autName" : @"autName",
@"email" : @"email"
}];
[ArticleMapping addPropertyMapping:[RKRelationshipMapping relationshipMappingFromKeyPath:@"Authors" toKeyPath:@"Authors" withMapping:AuthorMapping]];
Articles と Authors の関係を作成しました。正しくマッピングされていますが、「artName」ABC の作成者を取得しようとすると. 私は2人の著者しか得ていません。しかし、「artName」BCDのデータを取得しようとすると. 私は3人の著者を取得しています。DB にチェックインすると、レコード "James" の関係キーが BCD のレコードで上書きされます。
両方の記事のすべての著者にアクセスするにはどうすればよいですか。
注:Restkit 0.20を使用しています
ありがとうございました