Appengine JPA 2级缓存无法持久化

时间:2012-04-10 03:58:10

标签: google-app-engine jpa datanucleus

我正在尝试将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

0 个答案:

没有答案