2015-06-07 3 views
0

Я использую Sugar ОРМ 1.3.1 и я пытаюсь сохранить следующие объектыСахар ОРМ оленьей кожи хранить данные

public class Article extends SugarRecord<Article> implements Serializable { 
    @JsonProperty("Categories") 
    private List<Category> categories = new ArrayList<Category>(); 
    @JsonProperty("Contents") 
    private List<Content> contents = new ArrayList<Content>(); 
    @JsonProperty("Country") 
    private CountryRelated country; 
    @JsonProperty("Description") 
    private String description; 
    @JsonProperty("ExpiryDate") 
    private String expiryDate; 
    @JsonProperty("ExtraFields") 
    private List<ExtraField> extraFields = new ArrayList<ExtraField>(); 
    @JsonProperty("Identifier") 
    private int identifier; 
    @JsonProperty("ImageURL") 
    private String imageURL; 
    @JsonProperty("Name") 
    private String name; 
    @JsonProperty("PortalID") 
    private int portalID; 
    @JsonProperty("PublishDate") 
    private String publishDate; 
    @JsonProperty("Region") 
    private Region region; 
    @JsonProperty("Related") 
    private List<Related> related = new ArrayList<Related>(); 
    @JsonProperty("Newsbite") 
    private boolean newsbite; 
    @JsonProperty("ShareURL") 
    private String shareURL; 
    @JsonProperty("Tags") 
    private List<Tag> tags = new ArrayList<Tag>(); 
    @JsonProperty("Type") 
    private int type; 
    public Article() { 
    } 


    public Article(List<Category> categories, List<Content> contents, List<ExtraField> extraFields, CountryRelated country, String description, String expiryDate, int identifier, String imageURL, String name, boolean newsbite, int portalID, String publishDate, Region region, List<Related> related, String shareURL, List<Tag> tags, int type) { 
     this.categories = categories; 
     this.contents = contents; 
     this.extraFields = extraFields; 
     this.country = country; 
     this.description = description; 
     this.expiryDate = expiryDate; 
     this.identifier = identifier; 
     this.imageURL = imageURL; 
     this.name = name; 
     this.newsbite = newsbite; 
     this.portalID = portalID; 
     this.publishDate = publishDate; 
     this.region = region; 
     this.related = related; 
     this.shareURL = shareURL; 
     this.tags = tags; 
     this.type = type; 
    } 

    public List<Category> getCategories() { 
     return categories; 
    } 

    public void setCategories(List<Category> categories) { 
     this.categories = categories; 
    } 

    public List<Content> getContents() { 
     return contents; 
    } 

    public void setContents(List<Content> contents) { 
     this.contents = contents; 
    } 

    public List<ExtraField> getExtraFields() { 
     return extraFields; 
    } 

    public void setExtraFields(List<ExtraField> extraFields) { 
     this.extraFields = extraFields; 
    } 

    public CountryRelated getCountry() { 
     return country; 
    } 

    public void setCountry(CountryRelated country) { 
     this.country = country; 
    } 

    public String getDescription() { 
     return description; 
    } 

    public void setDescription(String description) { 
     this.description = description; 
    } 

    public String getExpiryDate() { 
     return expiryDate; 
    } 

    public void setExpiryDate(String expiryDate) { 
     this.expiryDate = expiryDate; 
    } 

    public int getIdentifier() { 
     return identifier; 
    } 

    public void setIdentifier(int identifier) { 
     this.identifier = identifier; 
    } 

    public String getImageURL() { 
     return imageURL; 
    } 

    public void setImageURL(String imageURL) { 
     this.imageURL = imageURL; 
    } 

    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 

    public boolean isNewsbite() { 
     return newsbite; 
    } 

    public void setNewsbite(boolean newsbite) { 
     this.newsbite = newsbite; 
    } 

    public int getPortalID() { 
     return portalID; 
    } 

    public void setPortalID(int portalID) { 
     this.portalID = portalID; 
    } 

    public String getPublishDate() { 
     return publishDate; 
    } 

    public void setPublishDate(String publishDate) { 
     this.publishDate = publishDate; 
    } 

    public Region getRegion() { 
     return region; 
    } 

    public void setRegion(Region region) { 
     this.region = region; 
    } 

    public List<Related> getRelated() { 
     return related; 
    } 

    public void setRelated(List<Related> related) { 
     this.related = related; 
    } 

    public String getShareURL() { 
     return shareURL; 
    } 

    public void setShareURL(String shareURL) { 
     this.shareURL = shareURL; 
    } 

    public List<Tag> getTags() { 
     return tags; 
    } 

    public void setTags(List<Tag> tags) { 
     this.tags = tags; 
    } 

    public int getType() { 
     return type; 
    } 

    public void setType(int type) { 
     this.type = type; 
    } 
} 

Category.class

public class Category extends SugarRecord<Category> implements Serializable { 
    @JsonProperty("Identifier") 
    private int identifier; 
    @JsonProperty("Name") 
    private String name; 
public constructor + getters and setters } 

Content.class и CountryRelated.class есть такая же структура

после того, как я сделаю article.save() мои списки не сохраняет. Я делаю что-то неправильно или вообще не сохраняет списки?

+0

Добавьте пример создания вашей записи. У вас может быть опечатка или ссылка на неправильный объект и т. Д., Но мы не можем видеть. Я бы также включил полную модель (конструктор и геттеры/сеттеры). –

+0

всего минуту, и я обновлю полную модель – ask110593

+0

только что добавили полную модель статьи, список он не хранит – ask110593

ответ

1

Несколько вещей, на которые нужно обратить внимание.

Первый. Я не считаю, что база данных будет обрабатывать столбец с типом списка или типа другого объекта. Когда я попытался запустить ваш код, я получил:

Class cannot be read from Sqlite3 database. Please check the type of field categories(java.util.List) 

Это должны быть типы, которые может хранить база данных. Попробуйте выполнить сериализацию списка (ов) на строки, чтобы вставить их в db. Вы можете попробовать сделать это в своем геттере и сеттере. Setter принимает список объектов и преобразует его в сериализованную String, getter берет сериализованную String и преобразует ее обратно в список объектов.

В экземпляре SugarOrm, вы можете ссылаться на другую таблицу, и она будет создавать отношения изложенные здесь:

http://satyan.github.io/sugar/creation.html#why

Обратите внимание на тип «Автор» только ссылающийся запись из другой таблицы в базе данных ,

Второй Обычно я пытаюсь установить значения по умолчанию внутри моего конструктора по умолчанию. так что-то вроде:

... property declarations... 

public Article() { 
    this.name = "Default Value"; 
} 

Надеюсь, что это поможет вам справиться с проблемой!

 Смежные вопросы

  • Нет связанных вопросов^_^