如何在greenDao中使用Polymorphic?

时间:2014-04-25 09:11:25

标签: greendao

我已经尝试过在greenDao中使用多态,但没有成功。 如何在greenDao中使用多态?

例如:

我有一个表“my_favorites”,因为我可以存储事件,图片,音乐的外键...?

我希望得到你的帮助!

2 个答案:

答案 0 :(得分:0)

我担心目前还没有得到greendao的支持。

您必须将密钥存储到正常的' LongProperty'没有任何'一个'或者“很多人”在第二列中,您必须保存一个鉴别器值(即引用的类名)。

然后你必须自己构建查询(即在你的' my_favorites'的保留部分中。

public Object getDetail() throws ClassNotFoundException {
    if (daoSession== null) {
        throw new DaoException("Entity is detached from DAO context");
    }
    return daoSession.load(Class.forName(getDiscriminator()), getMyDetailId());
}

答案 1 :(得分:0)

您可以在数据库中使用ToMany关系。看this tutorial

Entity customer = schema.addEntity("Customer");
customer.addIdProperty();
customer.addStringProperty("name").notNull();

Entity order = schema.addEntity("Order");
order.setTableName("ORDERS"); // "ORDER" is a reserved keyword
order.addIdProperty();
Property orderDate = order.addDateProperty("date").getProperty();
Property customerId = order.addLongProperty("customerId").notNull().getProperty();
order.addToOne(customer, customerId);

ToMany customerToOrders = customer.addToMany(order, customerId);
customerToOrders.setName("orders");
customerToOrders.orderAsc(orderDate);