我在GAE中使用JPA来持久保存对象。
javax.persistence.PersistenceException: Illegal argument
at org.datanucleus.api.jpa.NucleusJPAHelper.getJPAExceptionForNucleusException(NucleusJPAHelper.java:298)
at org.datanucleus.api.jpa.JPAEntityTransaction.commit(JPAEntityTransaction.java:122)
Caused by: java.lang.IllegalArgumentException: cross-group transaction need to be explicitly specified, see TransactionOptions.Builder.withXGfound both
Element {
type: "Event"
id: 0x11000000000000
}
and Element {
type: "User"
id: 0x14000000000000
}
事件和用户之间存在双向的“多对多”关系。当我插入一个新事件并将其绑定到事务中的现有用户时,我得到上述异常。
从错误消息中我看到我需要调整TransactionOptions
。我在哪里可以设置这些选项?
答案 0 :(得分:0)
在persistence.xml
中设置以下属性:
<property name="datanucleus.appengine.datastoreEnableXGTransactions" value="true" />
目前无法为单个JDO或JPA事务启用XG事务。而是为所有事务指定此项。 [docs]