我正在尝试将datanucleus jpa 2级缓存与appengine一起使用。
我真的不清楚如何配置appengine。
我有以下
persistence.xml
<property name="datanucleus.cache.level2" value="true"/>
<property name="datanucleus.cache.level2.type" value="javax.cache"/>
<property name="datanucleus.cache.level2.cacheName" value="xxxxx"/>
和maven片段
pom.xml
<dependency>
<groupId>org.datanucleus</groupId>
<artifactId>datanucleus-jpa</artifactId>
<version>1.1.5</version>
</dependency>
<dependency>
<groupId>org.datanucleus</groupId>
<artifactId>datanucleus-cache</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>com.google.appengine.orm</groupId>
<artifactId>datanucleus-appengine</artifactId>
<version>1.0.10</version>
</dependency>
<dependency>
<groupId>org.datanucleus</groupId>
<artifactId>datanucleus-core</artifactId>
<version>1.1.5</version>
</dependecny>
现在问题是,当我持久保存一个实体时,它会返回一个主键,但它不能从数据存储区查看器或其他查询中获得。 我在本地dev,junit测试或appengine的远程实例中遇到了这个问题。
一旦删除缓存配置,代码就可以正常工作。
snipet of test
@Test
public void findById(){
MerchantPromotion merchantPromotion1 = new MerchantPromotion();
em.persist(merchantPromotion1);
MerchantPromotion merchantPromotion = dao.findById( merchantPromotion1.getKey() );
assertNotNull( merchantPromotion); <---- assert fails here
}
问题是什么?
感谢
-lp