Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使Spring数据JPA与DataNucleus(GAE)协同工作(Spring引导)_Java_Spring_Google App Engine_Jpa_Spring Data Jpa - Fatal编程技术网

Java 使Spring数据JPA与DataNucleus(GAE)协同工作(Spring引导)

Java 使Spring数据JPA与DataNucleus(GAE)协同工作(Spring引导),java,spring,google-app-engine,jpa,spring-data-jpa,Java,Spring,Google App Engine,Jpa,Spring Data Jpa,有几个提示表明Spring Data与Google App Engine配合使用,如: 很多例子都不是“弹簧靴”,所以我一直在尝试用它来改进。然而,我已经被这个错误困扰了好几天了: [INFO] Caused by: java.lang.NullPointerException [INFO] at org.datanucleus.api.jpa.metamodel.SingularAttributeImpl.isVersion(SingularAttributeImpl.java:79

有几个提示表明Spring Data与Google App Engine配合使用,如:

很多例子都不是“弹簧靴”,所以我一直在尝试用它来改进。然而,我已经被这个错误困扰了好几天了:

[INFO] Caused by: java.lang.NullPointerException
[INFO]  at org.datanucleus.api.jpa.metamodel.SingularAttributeImpl.isVersion(SingularAttributeImpl.java:79)
[INFO]  at org.springframework.data.jpa.repository.support.JpaMetamodelEntityInformation.findVersionAttribute(JpaMetamodelEntityInformation.java:102)
[INFO]  at org.springframework.data.jpa.repository.support.JpaMetamodelEntityInformation.<init>(JpaMetamodelEntityInformation.java:79)
[INFO]  at org.springframework.data.jpa.repository.support.JpaEntityInformationSupport.getMetadata(JpaEntityInformationSupport.java:65)
[INFO]  at org.springframework.data.jpa.repository.support.JpaRepositoryFactory.getEntityInformation(JpaRepositoryFactory.java:149)
[INFO]  at org.springframework.data.jpa.repository.support.JpaRepositoryFactory.getTargetRepository(JpaRepositoryFactory.java:88)
[INFO]  at org.springframework.data.jpa.repository.support.JpaRepositoryFactory.getTargetRepository(JpaRepositoryFactory.java:68)
[INFO]  at org.springframework.data.repository.core.support.RepositoryFactorySupport.getRepository(RepositoryFactorySupport.java:158)
[INFO]  at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.initAndReturn(RepositoryFactoryBeanSupport.java:224)
[INFO]  at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.afterPropertiesSet(RepositoryFactoryBeanSupport.java:210)
[INFO]  at org.springframework.data.jpa.repository.support.JpaRepositoryFactoryBean.afterPropertiesSet(JpaRepositoryFactoryBean.java:92)
[INFO]  at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$6.run(AbstractAutowireCapableBeanFactory.java:1602)
[INFO]  at java.security.AccessController.doPrivileged(Native Method)
[INFO]  at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1599)
[INFO]  at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1549)
[INFO]  ... 40 more
我已经测试了
Persistence.createEntityManagerFactory(“事务可选”)
查看应用程序是否可以使用此EMF持久化,它确实可以,因此我确信此EMF工作正常。问题是Spring数据JPA的“连线”,有人能帮忙吗?

你是说这个问题吗
因为这个问题似乎很久以前就解决了。显然,您必须获得一个GAE版本,该版本将与JPA提供商的该版本一起使用。

另一个解决方法是切换回Spring Data 1.3.0。

如果您不想浪费一天的时间来配置Spring上下文和依赖项,我建议您使用它。

我不能使用该版本的DN,我认为GAE还不支持它,太糟糕了:-(看起来他们的SVN版本可以使用它。@NeilStockton,您知道如何在Gradle项目中使用SVN中的datanucleus appengine吗?
@Configuration
@ComponentScan
@EnableJpaRepositories
@EnableTransactionManagement
class JpaApplicationConfig {
    private static final Logger logger = Logger
            .getLogger(JpaApplicationConfig.class.getName());
    @Bean
    public EntityManagerFactory entityManagerFactory() {
        logger.info("Loading Entity Manager...");
        return Persistence
                .createEntityManagerFactory("transactions-optional");
    }

    @Bean
    public PlatformTransactionManager transactionManager() {
        logger.info("Loading Transaction Manager...");
        final JpaTransactionManager txManager = new JpaTransactionManager();
        txManager.setEntityManagerFactory(entityManagerFactory());
        return txManager;
    }
}