问题标签 [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.
java - 使用 Spring Data JPA 的模型库(继承)
我会为每个类/实体使用带有 ID 和时间戳的 ModelBase。但是当我Long
在界面中使用主键的类型时,JPARepository<>
我会收到消息
代码:
从 Modelbase 继承的 Modelclass
回购
我究竟做错了什么?
谢谢
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.Java将LocalContainerEntityManagerFactoryBean配置为:
如果我切断了删除/注释代码的依赖项,则其他文件没有直接关系:
在 UserService 类中;应用程序运行没有错误,我的意思是在访问服务 bean 中的 dao 对象时出现空指针异常。
所以问题是:为什么 Spring Data JPA 不创建 userDAO bean?
PS:我确实故意摆脱了所有@Transactions 管理以简化它,除了它应该在没有事务的情况下工作,不是吗?
java - 如何通过 Sort 和 Pageable 使用 Spring data JPA 开箱即用地查询数据?
我正在我的项目中尝试Spring data JPA。我想知道是否有一个开箱即用的 API 可以通过Sort
和查询数据Pageable
。当然,我知道我可以自己编写那个方法,我只是想知道是否有一个开箱即用的方法。我的 DAO extends JpaRepository
,我发现可以调用以下方法:
但是没有这样的方法findAll(Sort sort, Pageable pageable)
,所以我很好奇。
jpa-2.0 - Spring data JPA - 向所有存储库添加自定义行为
是否有人成功实现了向Spring 数据的所有存储库添加自定义行为?我无法弄清楚完整的细节,并且文档和实现似乎存在一些差异。有问题需要纠正吗?请分享您关于如何实现 JpaRepositoryFactoryBean 和 CustomizedRepository 实现的经验和细节。
非常感谢所有输入,
RJ
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 (包括我根据正在进行的讨论所做的更改)按要求添加
spring - 使用 Spring Data JPA 时我的存储库无法自动初始化
在浏览了几个教程之后,我正在尝试将 spring data jpa 添加到我的 spring-mvc web 项目中。但是我发现我的存储库无法自动初始化,我的服务类中出现了 NullPointerException。请参阅我的以下示例代码:
我的存储库:
}
我的控制器:
我的服务:</p>
我的配置:
……
我在这一行找到了 subjectRepository.findOne(subject) ,subjectRepository 为空,我的问题与这篇文章类似
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
java - 是否有集成 Spring-MVC 和 Spring-Data-JPA 的示例 Web 项目?
我看到很多 spring-data-jpa 的例子,但不是使用 spring-mvc 的 web 项目,目前我尝试在我的项目中使用 spring-data-jpa,但是失败了,请参阅我的帖子here。而且我没有找到解决我的问题的解决方案。谁能给我一个骨架项目,所以我可以重新开始。或者你能给我一些建议,比如使用spring-data-jpa,配置有什么特别的吗?春天的版本?spring data jpa 的教程听起来简单方便,但和我的场景不太一样。感谢您的反馈。
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 中缺少什么?
编辑: 日志:
spring - Spring Data JPA中的分页问题
我正在尝试spring data JPA,在启动我的项目时,出现以下错误:
这是我的存储库:
如您所见,我已经评论了使用pageble的方法,并将父界面从jparepository更改为repository。但我仍然收到上述错误消息。有什么与 persistence.xml 相关的吗?我的persistence.xml
还有我的spring数据jpa配置: