O jdo não está inserindo corretamente no gae, algumas transações simplesmente não acontecem…
Tendo este código:
pm = PMF.get().getPersistenceManager();
try {
for (int i=0;i<=10;i++) {
pm.makePersistent(new Categoria("nome"+i, "desc"+i));
List<Categoria> list = (List<Categoria>)pm.newQuery(Categoria.class).execute();
System.out.println(list.size());
}
} finally {
pm.close();
}
um dos possiveis resultado é este:
0
0
2
4
5
6
7
7
7
9
11
11
porem ele varia… as vezes não consegue inserir o registro, neste caso é só um teste pois este comportamento
esta acontecendo na app tbm…
Segue minha classe PMF:
public final class PMF {
private static final PersistenceManagerFactory pmfInstance =
JDOHelper.getPersistenceManagerFactory("transactions-optional");
private PMF() {}
public static PersistenceManagerFactory get() {
return pmfInstance;
}
}
Segue meu jdoconfig.xml:
<?xml version="1.0" encoding="utf-8"?>
<jdoconfig xmlns="http://java.sun.com/xml/ns/jdo/jdoconfig"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://java.sun.com/xml/ns/jdo/jdoconfig">
<persistence-manager-factory name="transactions-optional">
<property name="javax.jdo.PersistenceManagerFactoryClass"
value="org.datanucleus.store.appengine.jdo.DatastoreJDOPersistenceManagerFactory"/>
<property name="javax.jdo.option.ConnectionURL" value="appengine"/>
<property name="javax.jdo.option.NontransactionalRead" value="true"/>
<property name="javax.jdo.option.NontransactionalWrite" value="true"/>
<property name="javax.jdo.option.RetainValues" value="true"/>
<property name="datanucleus.appengine.autoCreateDatastoreTxns" value="true"/>
</persistence-manager-factory>
</jdoconfig>