gonzalezreal / Groot

From JSON to Core Data and back.
Other
534 stars 61 forks source link

Relation to inherited entities #58

Open o15a3d4l11s2 opened 8 years ago

o15a3d4l11s2 commented 8 years ago

Is there an annotation to cover the following case:

screen shot 2015-12-01 at 23 09 41

The JSON structure is the following:

{
  "users": [
    {
      "id": 1,
      "sentMessages": [
        {
          "id": 1,
          "type": "textMessage",
          "text": "asdfghjkl"
        },
        {
          "id": 2,
          "type": "pictureMessage",
          "url": "http://example.com/image.png"
        }
      ]
    }
  ]
}

The logic for the messages is taken from your example for entityMapperName, but I am not sure how to map the relationship between the objects.

How should I annotate the relations textMessages and pictureMessages together with the entityMapperName logic for the abstract base entity Message?

gonzalezreal commented 8 years ago

Groot does not currently support mapping one relationship into multiple relationships. You should map your sentMessages array to a single relationship and then filter by type when fetching your managed objects.

o15a3d4l11s2 commented 8 years ago

Is it reasonable to use the JSONDictionaryTransformerName to transform the JSON data to two separate relations (sentMessages would become textMessages and pictureMessages), as in the model?

gonzalezreal commented 8 years ago

Nope, sorry that wouldn't work.