私は App Engine 1.8.5 とそのデフォルトの nucleus データ ストア バージョンです。私は、GAE プラグインを備えたローカル Eclipse セットアップで作業しています。
すべてのデータストアと検索のために、ローカルマシンで正常に動作しています。Google App Engine サーバーに正常にデプロイされました。データ ストア リレーションを持たない URL は問題なく正常に動作します。問題は、サーバーでのデータストアの取得にあります。GAE データ核エンジンを使用したデータストアに JPA API を使用しています。
問題は、データストアからデータを取得しているときに、ローカル マシンではなくサーバーで PESSIMISTIC_READ エラーがスローされることです。行き詰まり、先に進めません。
参照用に、スタック トレース、persistence.xml、および EMF.java ファイルを貼り付けました。助けてください。
Caused by: java.lang.NoSuchFieldError: PESSIMISTIC_READ
at org.datanucleus.api.jpa.JPAQuery.getResultList(JPAQuery.java:171)
at com.ideafolks.codelist.datastore.dao.SectorDAO.getAllSector(SectorDAO.java:122)
at com.ideafolks.codelist.restful.SectorService.getAllSector(SectorService.java:57)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:45)
persistence.xml
<persistence-unit name="transactions-optional">
<provider>org.datanucleus.api.jpa.PersistenceProviderImpl</provider>
<class>com.ideafolks.codelist.datastore.tables.Sector</class>
<exclude-unlisted-classes>true</exclude-unlisted-classes>
<properties>
<property name="datanucleus.NontransactionalRead" value="true" />
<property name="datanucleus.NontransactionalWrite" value="true" />
<property name="datanucleus.ConnectionURL" value="appengine" />
<property name="datanucleus.singletonEMFForName" value="true" /> <!--
<property name="datanucleus.appengine.datastoreReadConsistency" value="EVENTUAL" /> -->
</properties>
</persistence-unit>
EMF.java
public final class EMF {
private static final EntityManagerFactory emfInstance = Persistence
.createEntityManagerFactory("transactions-optional");
private EMF() {
}
public static EntityManagerFactory get() {
return emfInstance;
}
}