Вложенные ForeignCollections всегда пустые с плагином RoboSpice и OrmLite

Я почти уверен, что это скорее вопрос OrmLite, чем RoboSpice, но, поскольку собственный кэш файлов прекрасно хранит данные, я публикую это с плагином OrmLite для RoboSpice. Моя проблема в том, что вложенные иностранные коллекции всегда пусты. Я имею в виду, когда JSON анализируется (без ошибок), таблицы не заполняются.

Ниже мой JSON и модель. Первый контейнер "Рецепты" прекрасно работает как Зарубежная Коллекция Рецептов. "фото" тоже хорошо. Проблема в "URL", я их настроил так же, как и ForeignCollection, но таблица БД всегда пуста.

Я могу получить доступ к данным из моего dbhelper и вручную выполнить запросы.update (), чтобы заполнить таблицы, но это, кажется, лишает цели иметь плагин, поэтому я предполагаю, что я делаю что-то не так. Какие-нибудь мысли?

Вот JSON, который я пытаюсь кэшировать с помощью RoboSpice/OrmLite.

    {
  "recipes": [
    {
      "recipeID": 25508,
      "type": "recipes",
      "title": "titel 1",
      "photo": {
        "photoID": 753228,
        "urls": [
          {
            "url": "http://images.x.com/userphotos/50x50/753228.jpg",
            "height": 50,
            "width": 50
          },
          {
            "url": "http://images.x.com/userphotos/110x110/753228.jpg",
            "height": 110,
            "width": 110
          },
          {
            "url": "http://images.x.com/userphotos/140x140/00/75/32/753228.jpg",
            "height": 140,
            "width": 140
          },
          {
            "url": "http://images.x.com/userphotos/250x250/00/75/32/753228.jpg",
            "height": 250,
            "width": 250
          }
        ]
      },
      "ratingAverage": 4.26,
      "ratingCount": 122,
      "reviewCount": 97,
      "submitter": {
        "userID": 0,
        "name": "name 1",
        "isPro": false,
        "photo": {
          "urls": [
            {
              "url": "http://images.x.com/global/profile/nophoto/noprofile-50x50.png",
              "height": 50,
              "width": 50
            },
            {
              "url": "http://images.x.com/global/profile/nophoto/noprofile-110x110.png",
              "height": 110,
              "width": 110
            },
            {
              "url": "http://images.x.com/global/profile/nophoto/noprofile-140x140.png",
              "height": 140,
              "width": 140
            },
            {
              "url": "http://images.x.com/global/profile/nophoto/noprofile-250x250.png",
              "height": 250,
              "width": 250
            }
          ]
        }
      },
      "videoID": 3205,
      "links": {
        "parent": {
          "href": "https://apps.beta.x.com/v1/recipes/25508"
        }
      }
    },
    {
      "recipeID": 214802,
      "type": "recipes",
      "title": "title 2",
      "photo": {
        "photoID": 662782,
        "urls": [
          {
            "url": "http://images.x.com/userphotos/50x50/662782.jpg",
            "height": 50,
            "width": 50
          },
          {
            "url": "http://images.x.com/userphotos/110x110/662782.jpg",
            "height": 110,
            "width": 110
          },
          {
            "url": "http://images.x.com/userphotos/140x140/00/66/27/662782.jpg",
            "height": 140,
            "width": 140
          },
          {
            "url": "http://images.x.com/userphotos/250x250/00/66/27/662782.jpg",
            "height": 250,
            "width": 250
          }
        ]
      },
      "ratingAverage": 4.61,
      "ratingCount": 18,
      "reviewCount": 13,
      "submitter": {
        "userID": 0,
        "name": "name 2",
        "isPro": false,
        "photo": {
          "urls": [
            {
              "url": "http://images.x.com/global/profile/nophoto/noprofile-50x50.png",
              "height": 50,
              "width": 50
            },
            {
              "url": "http://images.x.com/global/profile/nophoto/noprofile-110x110.png",
              "height": 110,
              "width": 110
            },
            {
              "url": "http://images.x.com/global/profile/nophoto/noprofile-140x140.png",
              "height": 140,
              "width": 140
            },
            {
              "url": "http://images.x.com/global/profile/nophoto/noprofile-250x250.png",
              "height": 250,
              "width": 250
            }
          ]
        }
      },
      "videoID": 0,
      "links": {
        "parent": {
          "href": "https://apps.beta.x.com/v1/recipes/214802"
        }
      }
    }
  ]
}

А вот и родственные модели:

@JsonIgnoreProperties(ignoreUnknown = true)
@DatabaseTable
public class Photo {
// id is generated by the database and set on the object automagically
@JsonIgnore
@DatabaseField(columnName = "id", generatedId = true)
int id;

@JsonIgnore
@DatabaseField(foreign = true, foreignAutoCreate = true, foreignAutoRefresh = true)
private Recipe recipe;

@JsonProperty("urls")
@ForeignCollectionField(eager = false)
Collection<PhotoUrl> urls;

public Photo() {
    // needed by Jackson/OrmLite, DO NOT REMOVE!
}

// Getters setters omitted...

@JsonIgnoreProperties(ignoreUnknown = true)
public class PhotoUrl {

// id is generated by the database and set on the object automagically
@JsonIgnore
@DatabaseField(columnName = "id", generatedId = true)
int id;

@JsonIgnore
@DatabaseField(foreign = true, foreignAutoCreate = true, foreignAutoRefresh = true)
private Photo photo;

@JsonProperty("url")
@DatabaseField(columnName = "url")
private String url;

@JsonProperty("height")
@DatabaseField(columnName = "height")
private float height;

@JsonProperty("width")
@DatabaseField(columnName = "width")
private float width;

public PhotoUrl() {
    // needed by Jackson/OrmLite, DO NOT REMOVE!
}

// Getters setters omitted...

0 ответов

Другие вопросы по тегам