オブジェクトマッピングで解決された問題に対する次の質問として、RestKitを0.10.1にアップグレードし、データモデルを次のように拡張しました。
会社は複数の連絡先とアクティビティを持つことができ、連絡先は複数のアクティビティを持つことができますが、1つの会社のみ、アクティビティは1つの会社と1つの連絡先のみを持つことができます。
関係のあるエンティティ
Company
- unitID
- companyID
- matchcode
- contacts* (Company -->> Contact | 1:n)
- activities* (Company -->> Activity | 1:n)
Contact
- unitID
- companyID
- contactID
- lastName
- firstName
- company* (Contact >--> Company | 1:1)
- activities* (Contact -->> Activity | 1:n)
Activity
- unitID
- activityID
- companyID
- contactID
- subject
- account* (Activity >--> Company | 1:1)
- contact* (Activity >--> Contact | 1:1)
JSON(会社)
[
{
"unitID":"003CABD8DEB5DC13C",
"companyID":"BSP-002999",
"matchcode":"Testcompany"
}
]
JSON(連絡先)
[
{
"unitID":"DAC2ACCC125795D00",
"companyID":"BSP-002999",
"contactID":"CLP-015468",
"firstName":"Mister",
"lastName":"Wayne"
}
]
JSON(アクティビティ)
[
{
"unitID":"E123FlADAS2DASD2F",
"activityID":"ACT-123912",
"companyID":"BSP-002999",
"contactID":"CLP-015468",
"subject":"Testsubject",
}
]
オブジェクトマッピング-接続の設定
// Objects
companyMapping.primaryKeyAttribute = @"companyID";
...
contactMapping.primaryKeyAttribute = @"contactID";
...
activityMapping.primaryKeyAttribute = @"activityID";
// Connections
[contactMapping mapRelationship:@"company" withMapping:companyMapping];
[contactMapping connectRelationship:@"company" withObjectForPrimaryKeyAttribute:@"companyID"];
[activityMapping mapRelationship:@"company" withMapping:companyMapping];
[activityMapping connectRelationship:@"company" withObjectForPrimaryKeyAttribute:@"companyID"];
[activityMapping mapRelationship:@"contact" withMapping:contactMapping];
[activityMapping connectRelationship:@"contact" withObjectForPrimaryKeyAttribute:@"contactID"];
問題
最初の2つのマッピング操作は正常に機能しますが、どういうわけか最後のマッピングアクティビティ>->連絡先は機能しません。
それを解決するためのアイデアをありがとう!