所以我创建了一个名为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;
答案 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。