问题标签 [spring-data-jpa]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
349 浏览

java - 使用 Spring Data JPA 的模型库(继承)

我会为每个类/实体使用带有 ID 和时间戳的 ModelBase。但是当我Long在界面中使用主键的类型时,JPARepository<>我会收到消息

代码:

从 Modelbase 继承的 Modelclass

回购

我究竟做错了什么?

谢谢

0 投票
0 回答
1264 浏览

spring - Spring Data JPA,Spring 3.1.1,无 xml 配置,不创建存储库 bean

尝试使用Spring Data JPA使用<repositories />自动生成 DAO 对象,其中 base-package 链接包含 DAO 接口的包,例如:

但它无法在服务 bean 中连接 DAO 对象,确切的错误是:

应用程序引导从WebAppInit.Java开始,因为它实现了 WebApplicationInitializer 接口,web.xml 代码为:

WebAppInit.Java将onStartup 方法编码为:

然后ApplicationContextConfig类用@Configuration注解,代码为:

所以这只是Java配置的主要/入口点,然后它遵循application.properties(不包括但只是要求它),然后是带有代码的springDataConfig.xml :

BasicDataSourceConfig.Java将DataSource @Bean配置为:

PersistenceSpringDataJpaConfig.JavaLocalContainerEntityManagerFactoryBean配置为:

如果我切断了删除/注释代码的依赖项,则其他文件没有直接关系:

在 UserService 类中;应用程序运行没有错误,我的意思是在访问服务 bean 中的 dao 对象时出现空指针异常。

所以问题是:为什么 Spring Data JPA 不创建 userDAO bean?

PS:我确实故意摆脱了所有@Transactions 管理以简化它,除了它应该在没有事务的情况下工作,不是吗?

0 投票
6 回答
105752 浏览

java - 如何通过 Sort 和 Pageable 使用 Spring data JPA 开箱即用地查询数据?

我正在我的项目中尝试Spring data JPA。我想知道是否有一个开箱即用的 API 可以通过Sort和查询数据Pageable。当然,我知道我可以自己编写那个方法,我只是想知道是否有一个开箱即用的方法。我的 DAO extends JpaRepository,我发现可以调用以下方法:

但是没有这样的方法findAll(Sort sort, Pageable pageable),所以我很好奇。

0 投票
2 回答
964 浏览

jpa-2.0 - Spring data JPA - 向所有存储库添加自定义行为

是否有人成功实现了向Spring 数据的所有存储库添加自定义行为?我无法弄清楚完整的细节,并且文档和实现似乎存在一些差异。有问题需要纠正吗?请分享您关于如何实现 JpaRepositoryFactoryBean 和 CustomizedRepository 实现的经验和细节。

非常感谢所有输入,
RJ

0 投票
1 回答
56301 浏览

java - Spring Data JPA - 注入失败 - BeanCreationException:无法自动装配字段

我按照此处发布的教程获得了与 Spring Data JPA 一起使用的基础应用程序。现在,我如何理解,使用配置

应该导致 Spring Data JPA 扫描该包以扩展接口JpaRepository并创建它的 concreate bean,以便可以使用简单的 Spring 在我的服务类中的任何地方使用它@Autowired。但它失败了,说它找不到带有 className 的 bean(这是 bean 在创建时获得的默认名称,只需使用去大写的 ClassName)。

但是,当我在 applicationContext 中手动配置 bean 时,如下所示:

Spring能够找到bean。然后我当然会得到一个错误,因为我想从一个接口创建一个 bean,这显然是行不通的。但关键是,Spring Data JPA“自动创建 bean”似乎以某种方式失败了。

我附上了相关代码,你可以看看。顺便说一句,我应该提到我正在开发一个 portlet,所以不要想知道为什么我没有 spring-config。我目前只使用一个 applicationConfig 加上一个 MyPortlet-Portlet.xml 用于 portlet 配置(但这应该与这个问题无关)。我添加了导入语句只是为了确保我没有使用错误的注释/类。

应用程序上下文.xml

ICustomerService - 只是 CustomerService 的一个接口

CustomerService - 我的应用程序逻辑用来获取/设置 ORM 数据的类

CustomerRepository - Spring Data JPA 的存储库

客户 - 我的样本实体

我刚从 WebSphere 的类路径地狱中走出来(该死,多么糟糕的产品),现在我在这里。希望有人可以帮助我。

一个关于究竟哪里出了问题的基本解释,也许可以更好地理解弹簧自动装配注入功能。我已经阅读了 spring 文档,但说实话:有很多方法可以配置某些东西,而我不太清楚选择其中一种配置样式时真正需要什么。

编辑

尝试更新项目后,我仍然收到错误消息。根据此处的要求,提供更多详细信息(跟踪):

编辑 #2 完成 applicationContext.xml (包括我根据正在进行的讨论所做的更改)按要求添加

0 投票
1 回答
3403 浏览

spring - 使用 Spring Data JPA 时我的存储库无法自动初始化

在浏览了几个教程之后,我正在尝试将 spring data jpa 添加到我的 spring-mvc web 项目中。但是我发现我的存储库无法自动初始化,我的服务类中出现了 NullPointerException。请参阅我的以下示例代码:

我的存储库:

}

我的控制器:

我的服务:</p>

我的配置:

……

我在这一行找到了 subjectRepository.findOne(subject) ,subjectRepository 为空,我的问题与这篇文章类似

0 投票
1 回答
2270 浏览

spring - SPRING DATA-JPA + eclipseLink2.0 失败

在我的测试项目中,由于以下错误,Spring 容器无法创建扩展 JpaRepository 的 bean。

原因:org.springframework.beans.factory.BeanCreationException:创建名为“srSvcInfoMtrRepository”的bean时出错:FactoryBean在对象创建时抛出异常;嵌套异常是 java.lang.NoSuchMethodError: javax.persistence.EntityManager.getMetamodel()Ljavax/persistence/metamodel/Metamodel;

这可能是与 JPA 版本相关的问题。

我在persistence.xml 的ecipelink2.0(org.eclipse.persistence.jpa.PersistenceProvider) 中指定了某些persistenceProvider。

你对这个问题有什么想法吗?

堆栈跟踪

2012-05-14 09:11:08 错误在允许 TestExecutionListener [org.springframework.test.context.support.DependencyInjectionTestExecutionListener@112da40] 准备测试实例时捕获异常 *> [net.tjjang.learn.spring_jpa.test.SrSvcInfoMtrTest@ b6d6ab] java.lang.IllegalStateException:无法在 org.springframework.test.context.TestContext.getApplicationContext 加载 ApplicationContext(TestContext.java:157) 在 org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:75) 在 org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:109) 在 org.springframework.test.context .TestContextManager.prepareTestInstance(TestContextManager.java:321) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:211) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner. java:288) 在 org.springframework.test.context.junit4.SpringJUnit4ClassRunner 的 org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)。methodBlock(SpringJUnit4ClassRunner.java:290) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:231) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:49) at org.junit .runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks。在 org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks 评估(RunBeforeTestClassCallbacks.java:61)。在 org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:174) 在 org.junit.runners.ParentRunner.run(ParentRunner.java:236) 在 org.eclipse 评估(RunAfterTestClassCallbacks.java:71) .jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) 在 org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) 在 org.eclipse.jdt.internal .junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) 在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) 在 org.eclipse.jdt.internal.junit.runner .RemoteTestRunner.run(RemoteTestRunner.java:390) 在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)在 org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:174) 在 org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java: 50) 在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) 在 org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) 在 org .eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) 在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) 在 org.eclipse.jdt .internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)在 org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:174) 在 org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java: 50) 在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) 在 org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) 在 org .eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) 在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) 在 org.eclipse.jdt .internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) 在 org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) 在 org.eclipse.jdt。 internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) 在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) 在 org.eclipse.jdt.internal.junit。 runner.RemoteTestRunner.run(RemoteTestRunner.java:390) 在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) 在 org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) 在 org.eclipse.jdt。 internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) 在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) 在 org.eclipse.jdt.internal.junit。 runner.RemoteTestRunner.run(RemoteTestRunner.java:390) 在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) 在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) 在 org.eclipse.jdt。 internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) 在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) 在 org.eclipse.jdt。 internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) 原因:org.springframework.beans.factory.BeanCreationException:创建名为“srSvcInfoMtrRepository”的bean时出错:FactoryBean在对象创建时抛出异常;嵌套异常是 java.lang.NoSuchMethodError: javax.persistence.EntityManager.getMetamodel()Ljavax/persistence/metamodel/Metamodel; 在 org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:149) 在 org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:102) 在 org.springframework.beans.factory .support.AbstractBeanFactory.getObjectForBeanInstance(AbstractBeanFactory.java:1441) 在 org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:305) 在 org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory .java:193) 在 org.springframework.context.support.AbstractApplicationContext 的 org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585)。finishBeanFactoryInitialization(AbstractApplicationContext.java:913) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:464) at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:103) at org .springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:1) at org.springframework.test.context.support.DelegatingSmartContextLoader.loadContext(DelegatingSmartContextLoader.java:228) at org.springframework.test.context.TestContext .loadApplicationContext(TestContext.java:124) 在 org.springframework.test.context.TestContext.getApplicationContext(TestContext.java:148) ... 24 更多springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:464) 在 org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:103) 在 org.springframework.test.context.support.AbstractGenericContextLoader。 loadContext(AbstractGenericContextLoader.java:1) at org.springframework.test.context.support.DelegatingSmartContextLoader.loadContext(DelegatingSmartContextLoader.java:228) at org.springframework.test.context.TestContext.loadApplicationContext(TestContext.java:124) at org .springframework.test.context.TestContext.getApplicationContext(TestContext.java:148) ... 24 更多springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:464) 在 org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:103) 在 org.springframework.test.context.support.AbstractGenericContextLoader。 loadContext(AbstractGenericContextLoader.java:1) at org.springframework.test.context.support.DelegatingSmartContextLoader.loadContext(DelegatingSmartContextLoader.java:228) at org.springframework.test.context.TestContext.loadApplicationContext(TestContext.java:124) at org .springframework.test.context.TestContext.getApplicationContext(TestContext.java:148) ... 24 更多AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:103) at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:1) at org.springframework.test.context.support.DelegatingSmartContextLoader.loadContext(DelegatingSmartContextLoader.java: 228)在 org.springframework.test.context.TestContext.loadApplicationContext(TestContext.java:124) 在 org.springframework.test.context.TestContext.getApplicationContext(TestContext.java:148) ... 24 更多AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:103) at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:1) at org.springframework.test.context.support.DelegatingSmartContextLoader.loadContext(DelegatingSmartContextLoader.java: 228)在 org.springframework.test.context.TestContext.loadApplicationContext(TestContext.java:124) 在 org.springframework.test.context.TestContext.getApplicationContext(TestContext.java:148) ... 24 更多loadContext(DelegatingSmartContextLoader.java:228) at org.springframework.test.context.TestContext.loadApplicationContext(TestContext.java:124) at org.springframework.test.context.TestContext.getApplicationContext(TestContext.java:148) ... 24更多的loadContext(DelegatingSmartContextLoader.java:228) at org.springframework.test.context.TestContext.loadApplicationContext(TestContext.java:124) at org.springframework.test.context.TestContext.getApplicationContext(TestContext.java:148) ... 24更多的 > 引起:java.lang.NoSuchMethodError: javax.persistence.EntityManager.getMetamodel()Ljavax/persistence/metamodel/Metamodel;* 在 org.springframework.data.jpa.repository.support.JpaEntityInformationSupport.getMetadata(JpaEntityInformationSupport.java:56) 在 org.springframework.data.jpa.repository.support.JpaRepositoryFactory.getEntityInformation(JpaRepositoryFactory.java:145) 在 org.springframework .data.jpa.repository.support.JpaRepositoryFactory.getTargetRepository(JpaRepositoryFactory.java:83) 在 org.springframework.data.jpa.repository.support.JpaRepositoryFactory.getTargetRepository(JpaRepositoryFactory.java:66) 在 org.springframework.data.repository .core.support.RepositoryFactorySupport.getRepository(RepositoryFactorySupport.java:146) 在 org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.getObject(RepositoryFactoryBeanSupport.java:120) 在 org.springframework.data.repository.core.support .RepositoryFactoryBeanSupport.getObject(RepositoryFactoryBeanSupport.java:39) 在 org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:142)

JpaRepository 类()

app-context.xml(不是 app-context.xml 的所有内容)

持久性.xml

图书馆

  • \org\springframework\spring-aop\3.1.0.RELEASE\spring-aop-3.1.0.RELEASE.jar

  • \aopalliance\aopalliance\1.0\aopalliance-1.0.jar

  • \org\springframework\spring-asm\3.1.0.RELEASE\spring-asm-3.1.0.RELEASE.jar

  • \org\springframework\spring-core\3.1.0.RELEASE\spring-core-3.1.0.RELEASE.jar

  • \commons-logging\commons-logging\1.1.1\commons-logging-1.1.1.jar

  • \org\springframework\spring-orm\3.1.0.RELEASE\spring-orm-3.1.0.RELEASE.jar

  • \org\springframework\spring-jdbc\3.1.0.RELEASE\spring-jdbc-3.1.0.RELEASE.jar

  • \org\springframework\spring-tx\3.1.0.RELEASE\spring-tx-3.1.0.RELEASE.jar

  • \org\springframework\spring-aspects\3.1.0.RELEASE\spring-aspects-3.1.0.RELEASE.jar

  • \org\springframework\spring-context\3.1.0.RELEASE\spring-context-3.1.0.RELEASE.jar

  • \org\springframework\spring-expression\3.1.0.RELEASE\spring-expression-3.1.0.RELEASE.jar

  • \org\springframework\spring-context-support\3.1.0.RELEASE\spring-context-support-3.1.0.RELEASE.jar

  • \org\springframework\spring-beans\3.1.0.RELEASE\spring-beans-3.1.0.RELEASE.jar

  • \org\springframework\spring-test\3.1.0.RELEASE\spring-test-3.1.0.RELEASE.jar

  • \org\springframework\spring-instrument\3.1.0.RELEASE\spring-instrument-3.1.0.RELEASE.jar

  • \junit\junit\4.8.2\junit-4.8.2.jar

  • \org\slf4j\slf4j-api\1.6.0\slf4j-api-1.6.0.jar

  • \org\slf4j\jcl-over-slf4j\1.6.0\jcl-over-slf4j-1.6.0.jar

  • \org\slf4j\slf4j-log4j12\1.6.0\slf4j-log4j12-1.6.0.jar

  • \log4j\log4j\1.2.16\log4j-1.2.16.jar

  • \cubrid\cubrid-jdbc\8.4.1.2032\cubrid-jdbc-8.4.1.2032.jar

  • \org\eclipse\persistence\eclipselink\2.0.0\eclipselink-2.0.0.jar

  • \org\springframework\data\spring-data-jpa\1.0.3.RELEASE\spring-data-jpa-1.0.3.RELEASE.jar

  • \org\springframework\data\spring-data-commons-core\1.1.0.RELEASE\spring-data-commons-core-1.1.0.RELEASE.jar

  • \org\hibernate\ejb3-persistence\1.0.2.GA\ejb3-persistence-1.0.2.GA.jar

  • \org\aspectj\aspectjrt\1.6.8\aspectjrt-1.6.8.jar
  • \org\aspectj\aspectjweaver\1.6.11\aspectjweaver-1.6.11.jar
  • \commons-dbcp\commons-dbcp\1.2.2-p1\commons-dbcp-1.2.2-p1.jar
  • \commons-pool\commons-pool\1.4\commons-pool-1.4.jar
  • \mysql\mysql-connector-java\5.1.10\mysql-connector-java-5.1.10.jar
0 投票
1 回答
2233 浏览

java - 是否有集成 Spring-MVC 和 Spring-Data-JPA 的示例 Web 项目?

我看到很多 spring-data-jpa 的例子,但不是使用 spring-mvc 的 web 项目,目前我尝试在我的项目中使用 spring-data-jpa,但是失败了,请参阅我的帖子here。而且我没有找到解决我的问题的解决方案。谁能给我一个骨架项目,所以我可以重新开始。或者你能给我一些建议,比如使用spring-data-jpa,配置有什么特别的吗?春天的版本?spring data jpa 的教程听起来简单方便,但和我的场景不太一样。感谢您的反馈。

0 投票
1 回答
5641 浏览

spring - Spring,JPA 事务仅适用于 JUnit 测试,但不适用于应用程序

我的交易有点问题。我将 Spring 3.1.1.RELEASE、Spring Data 1.0.3.RELEASE JPA 与 Hibernate 提供程序一起使用。当我开始一个 junit 测试时,在哪里用@Transactional它注释的方法似乎很好,但是当我启动整个应用程序时,没有错误,但事务不起作用。这是我的配置和示例代码:

应用程序上下文.xml

持久性.xml

用户存储库.java

公共接口 UserRepository 扩展 CrudRepository<User, Long>{ }

UserServiceImpl.java

用户服务测试.java

在这种 JUnit 测试的情况下,尽管服务方法使用@Transactional. 当我将此注释添加到testUserAdd()方法时,我会在控制台中得到它:

我想这是正确的。那么,注释怎么可能@Transactional只在 Junit 测试类中有效,而在其他 spring bean 中无效呢?

我的理论是,它SpringJUnit4ClassRunner以某种方式提供了这种交易。我的 Spring 配置中是否有问题,即事务在我的应用程序中不起作用,而仅在 Junit 测试类中起作用?appContext 中缺少什么?

编辑: 日志:

0 投票
3 回答
24124 浏览

spring - Spring Data JPA中的分页问题

我正在尝试spring data JPA,在启动我的项目时,出现以下错误:

这是我的存储库:

如您所见,我已经评论了使用pageble的方法,并将父界面从jparepository更改为repository。但我仍然收到上述错误消息。有什么与 persistence.xml 相关的吗?我的persistence.xml

还有我的spring数据jpa配置: