java - 在 ORMLite 中为一个类创建多个表

标签 java android ormlite

我在 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 中的字段将在每个 fooorderbarorder 表中。

关于java - 在 ORMLite 中为一个类创建多个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12038730/

相关文章:

java - ormlite:处理 Mysql 中日期列的默认值 "0000-00-00"

android - 将 ForeignCollection 转换为 ArrayList - ORMLite、Gson 和 Android

android - 更改 EditText 时播放声音 - android

android - ORMLite 多对多关系

java - 如何将大量传感器数据收集到文件而不是内存中

java - 检查数组中的负数并重新提示输入正确

java - JSP 在使用 ResourceHandlerRegistry.addResourceHandler(基于 Java 的 webConfig)时找不到 css 文件

java - System.out.println ('teststring' ) 如何在控制台上打印该值?哪个 native 方法正在执行实际工作?

android - 在Android中获取可见 map 的半径

android - Crashlytics 崩溃了