我在 Android 上使用 ORMLite 并有以下问题: 是否可以基于单个 Java 类创建多个表?
表应该只在名称上有所不同,对它们的访问应该通过名称。
例如,如果我有一个类:
public class Order{
@DatabaseField
public string Name;
@DatabaseField
public string Amount;
}
而且我有一个动态数量的模块可以创建订单。我希望每个模块都有自己的表,但所有表都应该有相似的架构。
我知道我可以在 Order 类中添加一个字段来指示源模块名称,并将所有订单放在一个表中,但我想知道是否有一种方法来分隔表(为了更快的查询,更快的删除来自同一模块的订单等等)
谢谢!
最佳答案
这里的大问题是“动态”是什么意思。如果您的意思是您需要即时创建这些模块 Order
而您事先不知道它们的名称,那么我相信模块名称字段是执行此操作的有效方法。为每种类型的订单创建一个表对我来说似乎是过早的优化——没有充分理由的复杂性。
也就是说,您可以通过实例化 DatabaseTableConfig
来完成动态类对于每个表和 defining the class programmatically .
如果您的意思不是真正的动态,那么将每个模块 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
中的字段将在每个 fooorder
和 barorder
表中。
关于java - 在 ORMLite 中为一个类创建多个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12038730/