Problema com JDO do Google app engine

0 respostas
luistiagos

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>
Criado 28 de fevereiro de 2012
Respostas 0
Participantes 1