【问题标题】:Spring data error弹簧数据错误
【发布时间】:2013-09-21 21:01:01
【问题描述】:

我有以下课程

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:my-ctx.xml"})
public class UserTests {
    @Inject
    private ApplicationContext applicationContext;

    private UserRepository getUserRepository() {
        return (UserRepository)applicationContext.getBean("userRepository", CrudRepository.class);
    }

    @Test
    public void someTest() {
        User user = new User();
        user.setName("John Doe");
        getUserRepository().save(user);
    }
}

运行测试,我得到以下错误

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userRepository': FactoryBean threw exception on object creation; nested exception is java.lang.NullPointerException
...

根本原因是

 org.datanucleus.api.jpa.metamodel.SingularAttributeImpl.isVersion(SingularAttributeImpl.java:79)
 org.springframework.data.jpa.repository.support.JpaMetamodelEntityInformation.findVersionAttribute(JpaMetamodelEntityInformation.java:92)
 org.springframework.data.jpa.repository.support.JpaMetamodelEntityInformation.<init>(JpaMetamodelEntityInformation.java:78)
 org.springframework.data.jpa.repository.support.JpaEntityInformationSupport.getMetadata(JpaEntityInformationSupport.java:65)
 org.springframework.data.jpa.repository.support.JpaRepositoryFactory.getEntityInformation(JpaRepositoryFactory.java:146)
 org.springframework.data.jpa.repository.support.JpaRepositoryFactory.getTargetRepository(JpaRepositoryFactory.java:84)
 org.springframework.data.jpa.repository.support.JpaRepositoryFactory.getTargetRepository(JpaRepositoryFactory.java:67)
 ...

其中VersionMetaData vermd = mmd.getAbstractClassMetaData().getVersionMetaData(); 为空。

这是一个错误吗?

我知道我可以输入@Inject UserRepository userRepository; 之类的东西,但考虑到 Spring Data 的工作原理,这两个应该有相同的结果,对吧?无论如何,结果都会是同样的错误。

我正在使用 Spring 数据 1.4.1、DataNucleus 3.3.2、Spring 3.2.4。

【问题讨论】:

    标签: jpa spring-data spring-data-jpa


    【解决方案1】:

    实际上这是一个 DataNucleus 错误,我填写了错误报告(包括测试和修复补丁):http://www.datanucleus.org/servlet/jira/browse/NUCJPA-250

    我的解决方法是切换回 Spring Data 1.3.0。

    【讨论】:

      猜你喜欢
      • 2017-07-06
      • 2019-05-03
      • 2017-12-31
      • 2013-12-06
      • 2012-12-22
      • 2011-07-25
      • 2012-01-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多