8

我在 Android 上使用 ORMLite 并且有以下问题:是否可以基于单个 Java 类创建多个表?

这些表应该只是它们的名称不同,并且对它们的访问应该是按名称。

例如,如果我有一堂课:

public class Order{
    @DatabaseField
    public string Name;

    @DatabaseField
    public string Amount;
}

而且我有动态数量的可以创建订单的模块。我希望每个模块都有自己的表,但所有表都应该有类似的模式。

我知道我可以在 Order 类中添加一个字段来指示源模块名称,并将所有订单放在一个表中,但我想知道是否有办法将表分开(为了更快的查询,更快地删除订单相同的模块等等)

谢谢!

4

1 回答 1

12

这里最大的问题是“动态”是什么意思。如果您的意思是您需要动态创建这些模块Order并且您事先不知道它们的名称,那么我相信模块名称字段是执行此操作的有效方法。为每种类型的订单创建一个表对我来说似乎是过早的优化——没有充分理由的复杂性。

也就是说,您可以通过DatabaseTableConfig为每个表实例化 a 并以编程方式定义类来完成动态类。

如果您不是真的指动态,那么将每个模块Order放在自己的表中的最简单方法是使用子类。

你可以有:

@DatabaseTable
public class FooOrder extends Order {
    // fields will be gotten from Order
}

@DatabaseTable
public class BarOrder extends Order {
    // fields will be gotten from Order
}

来自的字段Order将位于每个fooorderbarorder表中。

于 2012-08-20T13:51:39.520 回答