Android ORMLite:一个对象,但有两个表

时间:2015-12-08 17:14:08

标签: android sqlite ormlite

所以我创建了一个名为Food的通用类。

我有一个FoodStuff是糖果,所以我创建了一个名为“糖果”的数据库表。其中3个属性存储在类中,即糖果的foodname, id and sugar levels

@DatabaseTable(tableName = "sweets")
@JsonIgnoreProperties(ignoreUnknown = true)
public class Food implements Serializable {

    @DatabaseField(id = true)
    @JsonProperty
    private String id; //for both sweets and meats
    @DatabaseField
    @JsonProperty
    private String foodname; //for both sweets and meats
    @DatabaseField
    @JsonProperty
    public int sugar; //for sweets only
    @DatabaseField
    @JsonProperty
    public int protein;  //for meats only

现在我想通过在“糖果”旁边的顶部添加一个额外的标签来扩展我的Android应用程序。标签显示所有含有肉类的食品。

我想将另一个databaseTable添加到名为meats的sqlite数据库中,它应该只存储foodname, id and protein levels.

甚至可以在ORMLite中使用一个类吗?我想也许它看起来像这样但是这并不起作用,因为它混淆了ORMLite,它应该将数据导入到哪个表中:

@DatabaseTable(tableName = "sweets")
@DatabaseTable(tableName = "meats")
@JsonIgnoreProperties(ignoreUnknown = true)
public class Food implements Serializable {

    @DatabaseField(id = true)
    @JsonProperty
    private String id;
    @JsonProperty
    private String foodname;
    @JsonProperty
    public int sugar;
    @JsonProperty
    public int protein;

1 个答案:

答案 0 :(得分:3)

  

甚至可以在ORMLite中使用一个类吗?我想也许它看起来像这样但是这不起作用,因为它混淆了ORMLite它应该将数据导入哪个表:

我会考虑使用子类。因此,您需要Food成为abstract然后拥有:

@DatabaseTable(tableName = "sweets")
public class Sweets extends Food {

@DatabaseTable(tableName = "meats")
public class Meats extends Food {

如果您必须使用同一课程,则可以configure the tables programmatically