在android中使用ORMLite保持Collection类

Rya*_*yan 8 java database orm android ormlite

我有两个类设置,如下所示.我很困惑,当我需要注释作为外国收藏品的东西,当我不需要.这也可能听起来很愚蠢,但在ORMLite文档中没有说明是否允许非外国收藏.如果我有一个int自动装入Integers 的列表怎么办?我可以坚持使用@DatabaseField上面的标准Collection吗?ORMLite据说,一个外国收藏品也必须有后备参考才能发挥作用(对父母的一个参考,给出一对多的实际情况).对于下面的示例,我假设您应该注释myBList为外部集合以及创建myA外部对象,但是您如何处理myStringList

我在这里看过示例代码,但它没有回答我的问题:http://ormlite.com/docs/examples

public class A {

    private Set<B> myBList = new HashSet<B>();
    private List<String> myStringList = new ArrayList<String>();
    private long id;    
    public A(){}

    public Set<B> getMyBList() {
        return myBList;
    }
    public void setMyBList(Set<B> myBList) {
        this.myBList = myBList;
    }
    public List<String> getMyStringList() {
        return myStringList;
    }
    public void setMyStringList(List<String> myStringList) {
        this.myStringList = myStringList;
    }
    public void setId(long id){
        this.id = id;
    }

    public long getId(){
        return id;
    }
}

public class B {
    private int myInt;
    private String myString;
    private A myA;
    private long id;

    public B(){}

    public A getMyA(){
         return myA;
    }
    public A setMyA(A a){
        myA = a;
    }

    public int getMyInt() {
        return myInt;
    }
    public void setMyInt(int myInt) {
        this.myInt = myInt;
    }
    public String getMyString() {
        return myString;
    }
    public void setMyString(String myString) {
        this.myString = myString;
    }

    public void setId(long id){
        this.id = id;
    }

    public long getId(){
        return id;
    }
}
Run Code Online (Sandbox Code Playgroud)

Gra*_*ray 9

@Robert是对的.当hibernate持久化一个集合(甚至是一个数组)时,它会使用带有外来id的隐藏额外表来实现 - 换句话说就是隐藏的外部集合.ORMLite试图遵守KISS原则,因此您可以"手动"定义外国馆藏.

我添加了有关存储集合的更多详细信息.

http://ormlite.com/docs/foreign-collection


这意味着您不能保留Integer类型,因为没有foreign-id.此外,您的代码可以定义外部集合Collection<Order>ForeignCollection<Order>.任何一个都将设置为ForeignCollection.ORMLite不支持列表或其他集合类型.

  • 那么如何用ORMLite存储ArrayList <String>? (4认同)