我有以下代码:
@Entity
public class Incident {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Extension(vendorName="datanucleus", key="gae.encoded-pk", value="true")
private String incidentId;
@Persistent
@Extension(vendorName="datanucleus", key="gae.pk-id", value="true")
private Long keyId;
@OneToMany(mappedBy="incident")
@OrderBy("requestId")
@JoinColumn(name="INCIDENT_ID")
public List<ServiceRequest> requests;
...
}
@Entity
public class ServiceRequest {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Extension(vendorName="datanucleus", key="gae.encoded-pk", value="true")
private String requestId;
@Persistent
@Extension(vendorName="datanucleus", key="gae.pk-id", value="true")
private Long keyId;
private Incident incident;
...
}
使用它的场景首先是创建并持久化ServiceRequest,然后创建一个事件并将其添加到现有的ServiceRequest中 - 但是当我尝试保留事件时,我遇到了以下错误 引起:org.datanucleus.exceptions.NucleusUserException:id为“agxzbWFydGNpdHlhZ2hyFAsSDlNlcnZpY2VSZXF1ZXN0GAEM”的对象由不同的对象管理器管理
答案 0 :(得分:1)
我会以如下方式开始您的工作,然后告诉您深入学习有关所有数据存储区JDO Stuff的文档。然后感谢谷歌。 :-)
您必须使用相同的持久性管理器一次完成所有读取/创建/保存/更新任务。这意味着在相同的方法或代码块中,您必须:
问题是,如果您使用多个实体,则需要使用相同的PersistenceManager实例。