没有类型为'org.springframework.data.jpa.repository.support.JpaEntityInformation的合格Bean [英] No qualifying bean of type 'org.springframework.data.jpa.repository.support.JpaEntityInformation
问题描述
我正在尝试通过BaseRepository接口和BaseRepositoryImpl扩展** SimpleJpaRepository **.
Tha BaseRepositoryImpl扩展了** SimpleJpaRepository **并实现了BaseRepository.
I'm trying to extend the **SimpleJpaRepository ** by BaseRepository interface and the BaseRepositoryImpl.
Tha BaseRepositoryImpl extends **SimpleJpaRepository ** and implements BaseRepository.
此外,我还有一些其他存储库,例如CandidateRepository和EmployeeRepository,它们扩展了BaseRepository.
In addition, I have some other Repositories such as CandidateRepository and EmployeeRepository that extends the BaseRepository.
在下面您可以看到错误后的代码:
Below you can see the code following the error:
@NoRepositoryBean
public interface BaseRepository<T, ID extends Serializable> extends JpaRepository<T, ID>{
//..
}
@Repository
public abstract class BaseRepositoryImpl<T, ID extends Serializable> extends
SimpleJpaRepository<T, ID> implements BaseRepository<T, ID>{
private final EntityManager em;
public BaseRepositoryImpl(JpaEntityInformation<T,ID> entityInformation,
EntityManager entityManager) {
super(entityInformation, entityManager);
this.em = entityManager;
}
//..
}
扩展存储库:
@NoRepositoryBean
public interface CandidateRepository extends BaseRepository<DatCandidate, UUID>{
//..
}
@Repository(value="CandidateRepositoryImpl")
public class CandidateRepositoryImpl extends BaseRepositoryImpl<DatCandidate, UUID> implements CandidateRepository{
public CandidateRepositoryImpl(
JpaEntityInformation<DatCandidate, UUID> entityInformation,
EntityManager entityManager) {
super(entityInformation, entityManager);
}
}
这是我的配置:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:jpa="http://www.springframework.org/schema/data/jpa"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd
http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd">
<context:annotation-config />
<context:component-scan base-package="com.projects"></context:component-scan>
<jpa:repositories base-package="com.projects.repositories.impl"
base-class="com.projects.repositories.impl.BaseRepositoryImpl"></jpa:repositories>
<bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="persistenceUnitName" value="punit" />
<property name="dataSource" ref="dataSource" />
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<property name="showSql" value="true" />
</bean>
</property>
<property name="jpaPropertyMap">
<map>
<entry key="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect" />
<entry key="hibernate.hbm2ddl.auto" value="none"/>
<entry key="hibernate.format_sql" value="true" />
</map>
</property>
</bean>
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory"/>
</bean>
<tx:annotation-driven transaction-manager="transactionManager"/>
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/relocationdb?autoReconnect=true" />
<property name="username" value="root"></property>
<property name="password" value="1234" />
</bean>
</beans>
服务:
@Service(value="CandidateServiceImpl")
public class CandidateServiceImpl extends BaseServiceImpl<CandidateForCreationDto, CandidateDto,DatCandidate, UUID>
implements CandidateService{
private CandidateRepositoryImpl candidateRepository;
@Autowired
public CandidateServiceImpl (
@Qualifier("CandidateRepositoryImpl") JpaRepository<DatCandidate, UUID> candidateRepository
) {
this.candidateRepository = (CandidateRepositoryImpl)candidateRepository;
}
}
错误:
通过构造函数参数0表示的不满足的依赖关系;嵌套的异常是org.springframework.beans.factory.NoSuchBeanDefinitionException:否类型的合格豆'org.springframework.data.jpa.repository.support.JpaEntityInformation'可用:至少需要1个符合条件的bean作为自动线候选者.依赖项注释:{}
Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'org.springframework.data.jpa.repository.support.JpaEntityInformation' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}
我遵循了Spring JPA文档,但无法理解错误
I followed the Spring JPA documentation, but can't understand the error
附上正在运行的代码
4:39:10 PM org.hibernate.Version logVersion INFO:HHH000412:HibernateCore {5.2.12.Final} 2018年3月21日下午4:39:10org.hibernate.cfg.环境信息:HHH000206:找不到hibernate.properties 2018年3月21日下午4:39:10org.hibernate.annotations.common.reflection.java.JavaReflectionManagerINFO:HCANN000001:休眠公共注释{5.0.1.Final} 2018年3月21日下午4:39:12 org.hibernate.dialect.Dialect信息:HHH000400:使用方言:org.hibernate.dialect.MySQL5InnoDBDialect 2018年3月21日下午4:39:16org.apache.catalina.core.StandardContext监听器开始SEVERE:将上下文初始化事件发送到的侦听器实例的异常org.springframework.web.context.ContextLoaderListener类org.springframework.beans.factory.UnsatisfiedDependencyException:创建名称为'candidateController'的bean时出错:不满意通过字段"candidateBaseService"表示的依赖关系;嵌套的例外是org.springframework.beans.factory.UnsatisfiedDependencyException:在文件中定义名称为'CandidateServiceImpl'的bean创建时出错[C:\ Users \ alon \ Documents \ workspace-sts-3.9.2.RELEASE.metadata.plugins \ org.eclipse.wst.server.core \ tmp0 \ wtpwebapps \ Relocation \ WEB-INF \ classes \ com \ projects \service \ impl \ CandidateServiceImpl.class]:通过构造函数参数0表示的不满足的依赖关系;嵌套的异常是org.springframework.beans.factory.UnsatisfiedDependencyException:创建名称为"CandidateRepositoryImpl"的bean时出错文件[C:\ Users \ alon \ Documents \ workspace-sts-3.9.2.RELEASE.metadata.plugins \ org.eclipse.wst.server.core \ tmp0 \ wtpwebapps \ Relocation \ WEB-INF \ classes \ com \ projects \存储库\ impl \ CandidateRepositoryImpl.class]:通过构造函数参数0表示的不满足的依赖关系;嵌套的异常是org.springframework.beans.factory.NoSuchBeanDefinitionException:否类型的合格豆'org.springframework.data.jpa.repository.support.JpaEntityInformation'可用:至少需要1个符合条件的bean作为自动线候选者.依赖项注释:{},位于org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor $ AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:587)在org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:91)在org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:373)在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1344)在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582)在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:502)在org.springframework.beans.factory.support.AbstractBeanFactory.lambda $ doGetBean $ 0(AbstractBeanFactory.java:312)在org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)在org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:310)在org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200)在org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:760)在org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:868)在org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:549)在org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:409)在org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:291)在org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:103)在org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5110)在org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5633)在org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)在org.apache.catalina.core.ContainerBase $ StartChild.call(ContainerBase.java:1700)在org.apache.catalina.core.ContainerBase $ StartChild.call(ContainerBase.java:1690)在java.util.concurrent.FutureTask.run(FutureTask.java:266)在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)在java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:624)在java.lang.Thread.run(Thread.java:748)造成原因:org.springframework.beans.factory.UnsatisfiedDependencyException:在文件中定义名称为'CandidateServiceImpl'的bean创建时出错[C:\ Users \ alon \ Documents \ workspace-sts-3.9.2.RELEASE.metadata.plugins \ org.eclipse.wst.server.core \ tmp0 \ wtpwebapps \ Relocation \ WEB-INF \ classes \ com \ projects \service \ impl \ CandidateServiceImpl.class]:通过构造函数参数0表示的不满足的依赖关系;嵌套的异常是org.springframework.beans.factory.UnsatisfiedDependencyException:创建名称为"CandidateRepositoryImpl"的bean时出错文件[C:\ Users \ alon \ Documents \ workspace-sts-3.9.2.RELEASE.metadata.plugins \ org.eclipse.wst.server.core \ tmp0 \ wtpwebapps \ Relocation \ WEB-INF \ classes \ com \ projects \存储库\ impl \ CandidateRepositoryImpl.class]:通过构造函数参数0表示的不满足的依赖关系;嵌套的异常是org.springframework.beans.factory.NoSuchBeanDefinitionException:否类型的合格豆'org.springframework.data.jpa.repository.support.JpaEntityInformation'可用:至少需要1个符合条件的bean作为自动线候选者.依赖项注释:{},位于org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:729)在org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:192)在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1270)在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1127)在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545)在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:502)在org.springframework.beans.factory.support.AbstractBeanFactory.lambda $ doGetBean $ 0(AbstractBeanFactory.java:312)在org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)在org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:310)在org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200)在org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:251)在org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1138)在org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1065)在org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor $ AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:584)... 24更多原因:org.springframework.beans.factory.UnsatisfiedDependencyException:创建名称为"CandidateRepositoryImpl"的bean时出错文件[C:\ Users \ alon \ Documents \ workspace-sts-3.9.2.RELEASE.metadata.plugins \ org.eclipse.wst.server.core \ tmp0 \ wtpwebapps \ Relocation \ WEB-INF \ classes \ com \ projects \存储库\ impl \ CandidateRepositoryImpl.class]:通过构造函数参数0表示的不满足的依赖关系;嵌套的异常是org.springframework.beans.factory.NoSuchBeanDefinitionException:否类型的合格豆'org.springframework.data.jpa.repository.support.JpaEntityInformation'可用:至少需要1个符合条件的bean作为自动线候选者.依赖项注释:{},位于org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:729)在org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:192)在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1270)在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1127)在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545)在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:502)在org.springframework.beans.factory.support.AbstractBeanFactory.lambda $ doGetBean $ 0(AbstractBeanFactory.java:312)在org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)在org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:310)在org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200)在org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:251)在org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1138)在org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1065)在org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:815)在org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:721)... 37更多原因:org.springframework.beans.factory.NoSuchBeanDefinitionException:否类型的合格豆'org.springframework.data.jpa.repository.support.JpaEntityInformation'可用:至少需要1个符合条件的bean作为自动线候选者.依赖项注释:{},位于org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound(DefaultListableBeanFactory.java:1509)在org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1104)在org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1065)在org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:815)在org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:721)...还有51个
4:39:10 PM org.hibernate.Version logVersion INFO: HHH000412: Hibernate Core {5.2.12.Final} March 21, 2018 4:39:10 PM org.hibernate.cfg.Environment INFO: HHH000206: hibernate.properties not found March 21, 2018 4:39:10 PM org.hibernate.annotations.common.reflection.java.JavaReflectionManager INFO: HCANN000001: Hibernate Commons Annotations {5.0.1.Final} March 21, 2018 4:39:12 PM org.hibernate.dialect.Dialect INFO: HHH000400: Using dialect: org.hibernate.dialect.MySQL5InnoDBDialect March 21, 2018 4:39:16 PM org.apache.catalina.core.StandardContext listenerStart SEVERE: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'candidateController': Unsatisfied dependency expressed through field 'candidateBaseService'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'CandidateServiceImpl' defined in file [C:\Users\alon\Documents\workspace-sts-3.9.2.RELEASE.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\Relocation\WEB-INF\classes\com\projects\service\impl\CandidateServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'CandidateRepositoryImpl' defined in file [C:\Users\alon\Documents\workspace-sts-3.9.2.RELEASE.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\Relocation\WEB-INF\classes\com\projects\repositories\impl\CandidateRepositoryImpl.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'org.springframework.data.jpa.repository.support.JpaEntityInformation' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {} at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:587) at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:91) at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:373) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1344) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:502) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:312) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:310) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:760) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:868) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:549) at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:409) at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:291) at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:103) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5110) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5633) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1700) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1690) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'CandidateServiceImpl' defined in file [C:\Users\alon\Documents\workspace-sts-3.9.2.RELEASE.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\Relocation\WEB-INF\classes\com\projects\service\impl\CandidateServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'CandidateRepositoryImpl' defined in file [C:\Users\alon\Documents\workspace-sts-3.9.2.RELEASE.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\Relocation\WEB-INF\classes\com\projects\repositories\impl\CandidateRepositoryImpl.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'org.springframework.data.jpa.repository.support.JpaEntityInformation' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {} at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:729) at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:192) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1270) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1127) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:502) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:312) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:310) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:251) at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1138) at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1065) at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:584) ... 24 more Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'CandidateRepositoryImpl' defined in file [C:\Users\alon\Documents\workspace-sts-3.9.2.RELEASE.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\Relocation\WEB-INF\classes\com\projects\repositories\impl\CandidateRepositoryImpl.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'org.springframework.data.jpa.repository.support.JpaEntityInformation' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {} at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:729) at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:192) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1270) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1127) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:502) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:312) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:310) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:251) at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1138) at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1065) at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:815) at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:721) ... 37 more Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'org.springframework.data.jpa.repository.support.JpaEntityInformation' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {} at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound(DefaultListableBeanFactory.java:1509) at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1104) at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1065) at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:815) at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:721) ... 51 more
מרץ,2018年4月21日下午4:39:16 org.apache.catalina.core.StandardContextstartInternal SEVERE:一个或多个侦听器无法启动.满的详细信息将在相应的容器日志文件מרץ21中找到,2018 4:39:16 PM org.apache.catalina.core.StandardContext startInternal严重:由于先前的错误,上下文[/Relocation]启动失败2018年12月21日,下午4:39:16 org.apache.catalina.core.ApplicationContext日志信息:关闭Spring根WebApplicationContext 2018年2月21日下午4:39:16 org.apache.catalina.loader.WebappClassLoaderBaseclearReferencesJdbc严重:Web应用程序[/Relocation]注册了JDBC驱动程序[com.mysql.jdbc.Driver],但未能Web应用程序停止时注销它.为了防止内存泄漏,JDBC驱动程序已被强制注销.马耳他21,2018 4:39:16 PM org.apache.catalina.loader.WebappClassLoaderBaseclearReferencesThreads严重:Web应用程序[/Relocation]似乎已经启动了一个名为[废弃的连接清除的线程线程],但未能将其停止.这很有可能会创建一个内存泄漏.2018年2月21日,下午4:39:16org.apache.coyote.AbstractProtocol开始信息:开始ProtocolHandler ["http-bio-8080"] 2018年2月21日,下午4:39:16 PMorg.apache.coyote.AbstractProtocol开始信息:开始ProtocolHandler ["ajp-bio-8009"] 2018年2月21日,下午4:39:16org.apache.catalina.startup.Catalina启动信息:服务器启动于17422毫秒
מרץ 21, 2018 4:39:16 PM org.apache.catalina.core.StandardContext startInternal SEVERE: One or more listeners failed to start. Full details will be found in the appropriate container log file מרץ 21, 2018 4:39:16 PM org.apache.catalina.core.StandardContext startInternal SEVERE: Context [/Relocation] startup failed due to previous errors מרץ 21, 2018 4:39:16 PM org.apache.catalina.core.ApplicationContext log INFO: Closing Spring root WebApplicationContext מרץ 21, 2018 4:39:16 PM org.apache.catalina.loader.WebappClassLoaderBase clearReferencesJdbc SEVERE: The web application [/Relocation] registered the JDBC driver [com.mysql.jdbc.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered. מרץ 21, 2018 4:39:16 PM org.apache.catalina.loader.WebappClassLoaderBase clearReferencesThreads SEVERE: The web application [/Relocation] appears to have started a thread named [Abandoned connection cleanup thread] but has failed to stop it. This is very likely to create a memory leak. מרץ 21, 2018 4:39:16 PM org.apache.coyote.AbstractProtocol start INFO: Starting ProtocolHandler ["http-bio-8080"] מרץ 21, 2018 4:39:16 PM org.apache.coyote.AbstractProtocol start INFO: Starting ProtocolHandler ["ajp-bio-8009"] מרץ 21, 2018 4:39:16 PM org.apache.catalina.startup.Catalina start INFO: Server startup in 17422 ms
推荐答案
您在这里所做的事情有些奇怪.
You are doing a somewhat weird combination of things here.
一方面,通过在 CandidateRepository
上使用 @NoRepositoryBean
并提供自己的实现,可以有效地禁用所有Spring Data内容.但是然后您的实现是基于扩展 SimpleJpaRepository< T,ID>
的,它是Spring Data的核心组件,但是由于您基本上禁用了它,因此配置不正确.
On the one hand, you effectively disable all the Spring Data stuff by using @NoRepositoryBean
on CandidateRepository
and providing your own implementation. But then your implementation is based extends SimpleJpaRepository<T, ID>
which is a core component of Spring Data but it doesn't get configured properly since you basically disabled it.
我想是时候下定决心了:
I guess it's time to make up your mind:
-
是否要更改
SimpleJpaRepository< T,ID>
提供的行为?可能在基本实现中添加方法.
Do you want to change the behavior that is provided by
SimpleJpaRepository<T, ID>
? Possibly adding methods to your base implementation.
如果这样扩展它,则使构造函数保持不变,并将其用作您的此处是有关如何执行此操作的教程.
If so extend it, leaving constructors as they are and use it as your repositoryBaseClass
. Here is a tutorial how to do that.
只需为一个(或某些)存储库提供自定义实现.然后使用自定义实现.
Just provide custom implementation for one (or some) repositories. Then use custom implementations.
这篇关于没有类型为'org.springframework.data.jpa.repository.support.JpaEntityInformation的合格Bean的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!