我在哪里使用 JPA / Google App Engine 设置 TransactionOptions?
Where do I set TransactionOptions with JPA / Google App Engine?
我在 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
。我在哪里可以设置这些选项?
在persistence.xml
中设置以下属性:
<property name="datanucleus.appengine.datastoreEnableXGTransactions" value="true" />
目前无法为单个 JDO 或 JPA 事务启用 XG 事务。相反,您为所有交易指定此项。 [docs]
我在 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
。我在哪里可以设置这些选项?
在persistence.xml
中设置以下属性:
<property name="datanucleus.appengine.datastoreEnableXGTransactions" value="true" />
目前无法为单个 JDO 或 JPA 事务启用 XG 事务。相反,您为所有交易指定此项。 [docs]