在ORMLite中为ApplicationSettings存储多个ArrayLists的最佳方法

Rob*_*bin 5 java database orm ormlite

现在我试图在应用程序DB的帮助下将应用程序的设置保留给我ORMLite.

那么我的设置由不同String[]或者ArrayList<String>或者一个Map实际上只是一堆Strings.所以我的问题是,我应该为这样的场景使用什么数据类型,也许你也可以给我一个小的code example.

现在我尝试了不同的东西,但我从未对解决方案感到满意.我试过像这样的东西:

private HashMap<String, ArrayList<String>> configurationMap;

private String[] stringArr1;
private String[] stringArr2;

private ArrayList<String> arrList1;
Run Code Online (Sandbox Code Playgroud)

但是当谈到设置时,DB Datatypes我总是认为,"我不想要一个额外的表来存储数据"或"将地图序列化到数据库糟透了......".

也许有人知道如何以一种美观和方便的方式解决这个问题?

Dri*_*uar 10

对于arrayList,您只需执行以下操作:

public class YourClass{
    @GeneratedId
    private int id;

    @ForeignCollectionField
    private Collection<MyString> bunchOfStrings = new ArrayList<MyString>();
    ...
}
Run Code Online (Sandbox Code Playgroud)

在MyString类中,您有以下内容:

public class MyString{
    @DatabaseField(canBeNull = true, foreign = true)
    private YourClass yourClass;

     @DatabaseField
     private String text;
    ....
}
Run Code Online (Sandbox Code Playgroud)

就这样

  • +1"YourClass"也需要有一个id. (6认同)
  • @DrissBounouar,谢谢你回来.这是ORMLite的限制.我在这里问了一个单独的问题[这里](http://stackoverflow.com/questions/38088970).引用:"订单的字段类型必须是ForeignCollection <T>或Collection <T> - 不支持其他集合,因为它们更重,有许多方法可以支持". (2认同)