Spring Data JPA中的分页问题

前端之家收集整理的这篇文章主要介绍了Spring Data JPA中的分页问题前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在尝试Spring数据JPA,在启动我的项目时,我收到以下错误

  1. Caused by:
  2. org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'subjectRepository': factorybean threw exception on object creation; nested exception is java.lang.IllegalArgumentException: Paging query needs to have a Pageable parameter!
  3. at org.springframework.beans.factory.support.factorybeanRegistrySupport.doGetObjectFromfactorybean(factorybeanRegistrySupport.java:149)
  4. at org.springframework.beans.factory.support.factorybeanRegistrySupport.getObjectFromfactorybean(factorybeanRegistrySupport.java:102)
  5. at org.springframework.beans.factory.support.Abstractbeanfactory.getObjectForBeanInstance(Abstractbeanfactory.java:1441)
  6. at org.springframework.beans.factory.support.Abstractbeanfactory.doGetBean(Abstractbeanfactory.java:305)
  7. at org.springframework.beans.factory.support.Abstractbeanfactory.getBean(Abstractbeanfactory.java:193)
  8. at org.springframework.beans.factory.support.DefaultListablebeanfactory.findAutowireCandidates(DefaultListablebeanfactory.java:848)
  9. at org.springframework.beans.factory.support.DefaultListablebeanfactory.doResolveDependency(DefaultListablebeanfactory.java:790)
  10. at org.springframework.beans.factory.support.DefaultListablebeanfactory.resolveDependency(DefaultListablebeanfactory.java:707)
  11. at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:795)
  12. at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:723)
  13. at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:196)
  14. at org.springframework.beans.factory.support.AbstractAutowireCapablebeanfactory.autowireConstructor(AbstractAutowireCapablebeanfactory.java:1035)
  15. at org.springframework.beans.factory.support.AbstractAutowireCapablebeanfactory.createBeanInstance(AbstractAutowireCapablebeanfactory.java:939)
  16. at org.springframework.beans.factory.support.AbstractAutowireCapablebeanfactory.doCreateBean(AbstractAutowireCapablebeanfactory.java:485)
  17. at org.springframework.beans.factory.support.AbstractAutowireCapablebeanfactory.createBean(AbstractAutowireCapablebeanfactory.java:456)
  18. at org.springframework.beans.factory.support.Abstractbeanfactory$1.getObject(Abstractbeanfactory.java:294)
  19. at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
  20. at org.springframework.beans.factory.support.Abstractbeanfactory.doGetBean(Abstractbeanfactory.java:291)
  21. at org.springframework.beans.factory.support.Abstractbeanfactory.getBean(Abstractbeanfactory.java:197)
  22. at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.autowireResource(CommonAnnotationBeanPostProcessor.java:442)
  23. at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:416)
  24. at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:549)
  25. at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:150)
  26. at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87)
  27. at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:303)
  28. at org.springframework.beans.factory.support.AbstractAutowireCapablebeanfactory.populateBean(AbstractAutowireCapablebeanfactory.java:1106)
  29. at org.springframework.beans.factory.support.AbstractAutowireCapablebeanfactory.doCreateBean(AbstractAutowireCapablebeanfactory.java:517)
  30. at org.springframework.beans.factory.support.AbstractAutowireCapablebeanfactory.createBean(AbstractAutowireCapablebeanfactory.java:456)
  31. at org.springframework.beans.factory.support.Abstractbeanfactory$1.getObject(Abstractbeanfactory.java:294)
  32. at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
  33. at org.springframework.beans.factory.support.Abstractbeanfactory.doGetBean(Abstractbeanfactory.java:291)
  34. at org.springframework.beans.factory.support.Abstractbeanfactory.getBean(Abstractbeanfactory.java:193)
  35. at org.springframework.beans.factory.support.DefaultListablebeanfactory.preInstantiateSingletons(DefaultListablebeanfactory.java:585)
  36. at org.springframework.context.support.AbstractApplicationContext.finishbeanfactoryInitialization(AbstractApplicationContext.java:913)
  37. at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:464)
  38. at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:384)
  39. at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:283)
  40. at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:111)
  41. at org.eclipse.jetty.server.handler.ContextHandler.callContextInitialized(ContextHandler.java:672)
  42. at org.eclipse.jetty.servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:403)
  43. at org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:664)
  44. at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:239)
  45. at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1212)
  46. at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:610)
  47. at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:453)
  48. at org.mortbay.jetty.plugin.JettyWebAppContext.doStart(JettyWebAppContext.java:234)
  49. at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
  50. at org.eclipse.jetty.server.handler.HandlerCollection.doStart(HandlerCollection.java:224)
  51. at org.eclipse.jetty.server.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:167)
  52. at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
  53. at org.eclipse.jetty.server.handler.HandlerCollection.doStart(HandlerCollection.java:224)
  54. at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
  55. at org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:89)
  56. at org.eclipse.jetty.server.Server.doStart(Server.java:262)
  57. at org.mortbay.jetty.plugin.JettyServer.doStart(JettyServer.java:67)
  58. at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
  59. at org.mortbay.jetty.plugin.AbstractJettyMojo.startJetty(AbstractJettyMojo.java:333)
  60. at org.mortbay.jetty.plugin.AbstractJettyMojo.execute(AbstractJettyMojo.java:273)
  61. at org.mortbay.jetty.plugin.JettyRunMojo.execute(JettyRunMojo.java:548)
  62. at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:107)
  63. at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
  64. at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
  65. at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
  66. at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
  67. at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
  68. at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
  69. at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
  70. at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:319)
  71. at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
  72. at org.apache.maven.cli.MavenCli.execute(MavenCli.java:534)
  73. at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
  74. at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
  75. at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  76. at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
  77. at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  78. at java.lang.reflect.Method.invoke(Method.java:601)
  79. at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
  80. at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
  81. at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
  82. at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
  83. Caused by:
  84. java.lang.IllegalArgumentException: Paging query needs to have a Pageable parameter!
  85. at org.springframework.util.Assert.isTrue(Assert.java:65)
  86. at org.springframework.data.repository.query.QueryMethod.factorybeanSupport.getObject(RepositoryfactorybeanSupport.java:125)
  87. at org.springframework.data.repository.core.support.RepositoryfactorybeanSupport.getObject(RepositoryfactorybeanSupport.java:41)
  88. at org.springframework.beans.factory.support.factorybeanRegistrySupport.doGetObjectFromfactorybean(factorybeanRegistrySupport.java:142)
  89. at org.springframework.beans.factory.support.factorybeanRegistrySupport.getObjectFromfactorybean(factorybeanRegistrySupport.java:102)
  90. at org.springframework.beans.factory.support.Abstractbeanfactory.getObjectForBeanInstance(Abstractbeanfactory.java:1441)
  91. at org.springframework.beans.factory.support.Abstractbeanfactory.doGetBean(Abstractbeanfactory.java:305)
  92. at org.springframework.beans.factory.support.Abstractbeanfactory.getBean(Abstractbeanfactory.java:193)

这是我的存储库:

  1. public interface SubjectRepository extends Repository

正如您所看到的,我已经评论了使用pageble的方法,并将父接口从jparepository更改为repository.But我仍然收到上述错误消息.有没有与persistence.xml相关的东西?
我的persistence.xml

  1. MysqL.jdbc.Driver"/>
  2. MysqL://localhost:3306/mydb?useUnicode=true&characterEncoding=UTF-8"/>
  3. MysqLDialect"/>
  4. sql" value="true"/>
  5. sql" value="true"/>

我的spring数据jpa配置:

  1. factorybean">
  2. sql" value="true" />
最佳答案
您正在阅读错误消息错误

  1. Paging query needs to have a Pageable parameter!

你注释掉的方法是正确的,剩下的方法错误的!如果你想返回Page< PSubject>从查询方法来看,此方法必须具有Pageable参数.这是可以理解的:如果您询问特定结果页面,则必须首先定义您感兴趣的页面.

  1. Page

或者如果您对所有结果感兴趣,请使用List< PSubject>:

  1. Page

猜你在找的Spring相关文章