Java 使用JPA2.0在GAE数据存储中执行一对一关系时出现StackOverflowerError

Java 使用JPA2.0在GAE数据存储中执行一对一关系时出现StackOverflowerError,java,google-app-engine,jpa,google-cloud-datastore,datanucleus,Java,Google App Engine,Jpa,Google Cloud Datastore,Datanucleus,我有两个表文件夹&虚拟系统我试图遵循这一点,但结果总是与StackOverFlowException这里是我迄今为止尝试的 Folder.java @Entity public class Folder implements IsSerializable{ @Id @Column(name = "fvseID") @GeneratedValue(strategy = GenerationType.IDENTITY) @Extension(vendorName =

我有两个表
文件夹
&
虚拟系统
我试图遵循这一点,但结果总是与
StackOverFlowException
这里是我迄今为止尝试的

Folder.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();
}
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
内部\u服务器\u错误

原因:java.lang.StackOverflower错误 位于java.util.Hashtable.get(Hashtable.java:334) 位于java.util.Properties.getProperty(Properties.java:932) 位于java.lang.System.getProperty(System.java:653) 位于com.google.appengine.tools.development.agent.runtime.runtime.checkRestricted(runtime.java:63) 位于com.cbd.shared.entities.VirtualSystemEntry.init(VirtualSystemEntry.java:28) 位于com.cbd.shared.entities.Folder.init(Folder.java:27) 位于com.cbd.shared.entities.VirtualSystemEntry.init(VirtualSystemEntry.java:28) 位于com.cbd.shared.entities.Folder.init(Folder.java:27) 位于com.cbd.shared.entities.VirtualSystemEntry.init(VirtualSystemEntry.java:28) 位于com.cbd.shared.entities.Folder.init(Folder.java:27) 位于com.cbd.shared.entities.VirtualSystemEntry.init(VirtualSystemEntry.java:28) 位于com.cbd.shared.entities.Folder。。。。。等等

那么我在这里做错了什么??顺便说一下,我使用的是
GWT

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

非常感谢您的回复,我相信您会首先回答这个问题:)。因此,我认为您的意思是从两个节点上的每个引用中删除指定的对象:例如:
文件夹父节点对吗?因为有参数的构造函数存在
JPA
问题,所以我实际上依赖于这两个函数的默认构造函数