Oi pessoal!
Alguém aí usando o AppEngine com JPA conseguiu fazer o second-level cache funcionar?
Andei lendo por aí mas tá difícil (a documentação é terrível).
Estou usando o GAE 1.3.3.1 com datanucleus-cache-1.1.1. Configurei o persistence.xml com o cache usando javax.cache, coloquei Serializable nas entidades, mas toda vez que chamo um merge, acabo com uma:
Caused by: java.lang.IllegalArgumentException: can't accept class org.datanucleus.identity.IdentityReference as a memcache entity
at com.google.appengine.api.memcache.MemcacheSerialization.serialize(MemcacheSerialization.java:262)
at com.google.appengine.api.memcache.MemcacheSerialization.makePbKey(MemcacheSerialization.java:199)
at com.google.appengine.api.memcache.MemcacheServiceImpl.get(MemcacheServiceImpl.java:234)
at com.google.appengine.api.memcache.stdimpl.GCache.remove(GCache.java:174)
at org.datanucleus.cache.javaxcache.JavaxCacheLevel2Cache.evict(JavaxCacheLevel2Cache.java:192)
at org.datanucleus.ObjectManagerImpl.performLevel2CacheUpdateAtCommit(ObjectManagerImpl.java:2982)
at org.datanucleus.ObjectManagerImpl.preCommit(ObjectManagerImpl.java:2925)
at org.datanucleus.TransactionImpl.internalPreCommit(TransactionImpl.java:369)
at org.datanucleus.TransactionImpl.commit(TransactionImpl.java:256)
at org.datanucleus.jpa.EntityTransactionImpl.commit(EntityTransactionImpl.java:104)
Alguma ideia? Alguém está usando o cache de segundo nível com JPA no GAE?
PS. Estou pensando seriamente em não usar mais JPA e partir pro objectify ou twig… muita dor de cabeça esse datanucleus
Valeu
