当前位置: 首页 > 面试题库 >

在Android中使用ORMLite持久保存Collection类

商飞翮
2023-03-14
问题内容

我有两个如下的类设置。当我需要注释什么东西作为外国收藏时,我什么时候不需要,我感到困惑。这听起来也很愚蠢,但是ORMLite文档中没有任何地方说明是否允许非外部集合。如果我有一个自动int装箱到Integer的清单,该怎么办?我可以使用@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;
    }
}

问题答案:

@罗伯特是正确的。当hibernate持久化一个集合(甚至一个数组)时,它会使用带有外部ID的隐藏的多余表(换句话说,就是隐藏的外部集合)来实现。ORMLite尝试遵守KISS原则,因此您是否“手工”定义了国外藏品。

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

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

这意味着您不能持久化Integer类型,因为没有外部标识符。另外,您的代码可以定义外部集合Collection<Order>ForeignCollection<Order>。任一个都会设置为ForeignCollection。ORMLite不支持列表或其他集合类型。



 类似资料:
  • 我已经开始使用推荐的,并不再使用。其中一件我无法粘合的事情是使用持久的cookie存储。我只想在我的连接上附加一个定制的cookie处理程序/管理器来存储cookie。Android文档并没有太大帮助,因为它将有关cookie的主题概括为两行。 我之前一直在使用LoopJ的PersistentCookieStore,效果很好。 关于如何在Android中设置一个持久的cookie存储,我可以附加到

  • 我想写一个脚本,它将2 GB的数据从硬盘加载到内存中,然后当其他程序请求时,它必须得到一个输入,并根据输入对这个数据进行一些计算。对我来说,重要的是将这2 GB的数据持久地保存在内存中,以加快计算速度,更重要的是避免巨大的I/O负载。 我应该如何将数据永远保存在内存中?或者更一般地说,我应该如何在Python中解决这样的问题?

  • 问题内容: 我想和Hibernate保持我的小动物园: 当我尝试保持动物园时,hibernate状态抱怨: 我知道-的属性,但这意味着,只有猫狗可以住在我的动物园里。 有没有办法用Hibernate来持久化具有多个实现的接口集合? 问题答案: 接口上不支持JPA批注。从 Java Persistence with Hibernate (p.210): 请注意,JPA规范在接口上不支持任何映射注释!

  • 问题内容: 我最近开始玩Play!Java框架1.2.3版(最新)。在测试框架时,尝试在名为的Hibernate实体中保留对象时遇到了一个奇怪的问题。地图对象映射长到Hibernate的实体,我呼吁,随着申报 我的问题如下:按照我的注释创建正确的表。但是,当对象持久化时,其中的数据就不会! 这是我用于实体的代码。首先是: 这里是: 这是我用来测试设置的课程: 表演!框架会自动为HTTP请求创建一个

  • 问题内容: 我最近开始玩Play!Java框架1.2.3版(最新)。在测试框架时,尝试在名为的Hibernate实体中保留对象时遇到了一个奇怪的问题。地图对象映射长到Hibernate的实体,我呼吁,随着申报 我的问题如下:按照我的注释创建正确的表。但是,当对象持久化时,其中的数据就不会! 这是我用于实体的代码。首先是: 这里是: 这是我用来测试设置的课程: 表演!框架会自动为HTTP请求创建一个

  • 我使用StreamRefs在集群中的参与者之间建立流式连接。目前,在writing节点中,我手动将传入消息保存到日志文件中,但我想知道是否可以将其替换为persistent,用于写入,以及persistent,用于从Akka Persistence journal启动actor时读取。我一直在考虑用Persistent actor的