Android ORMLite : one object but two tables

标签 android sqlite ormlite

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

我有一个 FoodStuff 是糖果,所以我创建了一个名为“sweets”的数据库表,其中类的 3 个属性存储在类中,即糖果的 foodname、id 和 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 应用程序,该选项卡将显示所有包含肉类的食品。

我想在我的名为 meats 的 sqlite 数据库中添加一个额外的 databaseTable,它应该只存储 foodname、id 和蛋白质水平。

这甚至可以在 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;

最佳答案

Is this even possible using one class in ORMLite? I thought maybe it would look something like this but this doesn't work as it confuses ORMLite as to which table it should import the data into:

我会考虑使用子类。所以你会让 Food 成为 abstract 然后有:

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

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

如果你必须使用相同的类,那么你可以 configure the tables programmatically .

关于Android ORMLite : one object but two tables,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34161980/

相关文章:

SQLITE INNERJOIN 噩梦,需要一个解决方案

c# - 无法在 System.Data.SQLite 中使用 REGEXP 运算符

java - 测试类通过 ORMLite 的 DAO 与 DB 通信

android - OrmLite Android 中 int 的默认值

android - ORMLite 和图像在 Android 上保存为 BLOB

android - 如何在不锁定 Activity 方向的情况下锁定 fragment 方向?

Android 动画 GIF 支持

android - 如何删除固定的快捷方式?

android - 如何使用 views.py 捕获从 android 发送到 Django 服务器的响应?

java - 无法实例化 Activity ComponentInfo{ProductSimpleInfoActivity} NullPointerException