当前位置: 首页 > 知识库问答 >
问题:

使用JPA 2.0在GAE数据存储中执行一对一关系时出现StackOverflowerError

吴星汉
2023-03-14

我有两张桌子文件夹

文件夹JAVA

@Entity
public class Folder implements IsSerializable{

    @Id
    @Column(name = "fvseID")
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Extension(vendorName = "datanucleus", key = "gae.encoded-pk", value = "true")
    private String fvseID;

    @OneToOne
    @JoinColumn(name="vseID")
    private VirtualSystemEntry vse=new VirtualSystemEntry();
}

虚拟系统。JAVA

@Entity
public class VirtualSystemEntry implements IsSerializable {

    @Id
    @Column(name = "vseID")
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Extension(vendorName = "datanucleus", key = "gae.encoded-pk", value = "true")
    private String id;
    String label, image, tooltip;


    private int x, y, tray;

    @OneToOne(mappedBy="vse")
    Folder parent = new Folder();
    }

异常跟踪的片段

INTERNAL_SERVER_ERROR</pre></p><h3>Caused by:</h3><pre>java.lang.StackOverflowError
    at java.util.Hashtable.get(Hashtable.java:334)
    at java.util.Properties.getProperty(Properties.java:932)
    at java.lang.System.getProperty(System.java:653)
    at com.google.appengine.tools.development.agent.runtime.Runtime.checkRestricted(Runtime.java:63)
    at com.cbd.shared.entities.VirtualSystemEntry.&lt;init&gt;(VirtualSystemEntry.java:28)
    at com.cbd.shared.entities.Folder.&lt;init&gt;(Folder.java:27)
    at com.cbd.shared.entities.VirtualSystemEntry.&lt;init&gt;(VirtualSystemEntry.java:28)
    at com.cbd.shared.entities.Folder.&lt;init&gt;(Folder.java:27)
    at com.cbd.shared.entities.VirtualSystemEntry.&lt;init&gt;(VirtualSystemEntry.java:28)
    at com.cbd.shared.entities.Folder.&lt;init&gt;(Folder.java:27)
    at com.cbd.shared.entities.VirtualSystemEntry.&lt;init&gt;(VirtualSystemEntry.java:28)
    at com.cbd.shared.entities.Folder..... and so on

那么我到底做错了什么??顺便说一下,我使用的是GWT

共有1个答案

章茂
2023-03-14

因此,您的代码virtualsystemmentry(构造函数)正在调用您的代码文件夹(构造函数),它会递归(您不提供这些方法的代码),很可能是这些类变量“parent”和“vse”的初始化。。。修正初始化;-)

 类似资料:
  • 问题内容: 我正在建立一个网站,我需要在数据库中存储随机数的数据。 例如:用户john可能有一个电话号码,而jack可能有3。 我需要能够为每个用户存储无限数量的值。 我在任何地方都找不到方法,希望您能帮助我!:) 我是关系数据库的新手。 问题答案: 您创建一个单独的电话号码表(即1:M关系)。 现在,您可以通过简单的连接轻松获得用户的电话号码;

  • 我实际上正在使用GAE构建一个聊天室,问题是我将clientid和令牌存储在chatrromservlet中,并使用datastore密钥访问它们,但当我试图使用该密钥从sayservlet访问数据存储时,我得到一个异常,即没有找到具有该密钥的实体。 我的chatroomservlet say servlet是 如果在访问时有任何错误,请帮助我。

  • 问题内容: 我想将分层的二维科学数据集存储在关系数据库(MySQL或SQLite)中。每个数据集都包含一个数值数据表,其中包含任意数量的列。另外,每个数据集可以具有一个或多个与其表的给定行关联的相同类型的子级。每个数据集通常具有1至100列和1至1.000.000行。数据库应该能够处理许多数据集(> 1000),并且数据的读/写应该相当快。 存储此类数据的最佳数据库模式将是什么?是否有一个“主”表

  • 我已经试着解决这件事很长一段时间了,但我什么也没得到。我一直在试图保存一个实体,该实体拥有对另一个实体的引用。 用户通过填写表单创建一个place实体,然后按save保存该实体。它应该自动在“places”和“place\u url”表中创建新行。下面是我正在加载到应用程序中的SQL文件的链接:https://pastebin.com/x8Gvk7ub 母实体: 子实体: 控制器: Hiberna

  • 问题内容: 进行GAE / J数据存储区备份的最简单方法是什么? 看起来好像有python bulkloader.py工具可以为Python应用程序执行备份,但是我应该怎么做才能备份Java应用程序?有什么方法可以使用python工具吗? 问题答案: 可以使用python工具bulkloader.py创建GAE Java应用的数据存储备份。您只需通过在web.xml中添加以下几行来设置remote

  • 我在和实体之间有以下一对一的关系: 和 这一切工作得很好,但是如果我添加到类中的字段,并调用,则会失败: 原因:javax。坚持不懈RollbackException:在组织提交事务时出错。冬眠内部的例外情况ConverterImpl。org上的ConvertCommitteException(ExceptionConverterImpl.java:77)。冬眠发动机交易内部的Transactio