Spring boot EnversRevisionRepositoryFactoryBean不为JPA存储创建bean
我使用的是SpringBoot,HibernateEnverse。我在pom.xml中有以下依赖项Spring boot EnversRevisionRepositoryFactoryBean不为JPA存储创建bean,spring-boot,hibernate-envers,spring-data-envers,Spring Boot,Hibernate Envers,Spring Data Envers,我使用的是SpringBoot,HibernateEnverse。我在pom.xml中有以下依赖项 <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-envers</artifactId> </dependency> 所以包com.example.persistence有PersonDAO和Address
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-envers</artifactId>
</dependency>
所以包com.example.persistence
有PersonDAO
和AddressDAO
以及实体
我有以下两个道
interface PersonDAO extends RevisionRepository<PersonEntity, Integer, Integer>, JpaRepository<PersonEntity, Integer>{}
interface AddressDAO extends JpaRepository<AddressEntity, Integer>{}
当我添加@EnableJpaRepositories(…)
config时,它无法为AddressDAO
获取bean。我认为EnversRevisionRepositoryFactoryBean
适用于RevisionRepository
和JpaRepository
我得到了以下异常跟踪
org.springframework.beans.factory.UnsatifiedDependencyException:创建名为“addressService”的bean时出错:通过字段“addressDAO”表示的未满足的依赖关系;嵌套异常为org.springframework.beans.factory.BeanCreationException:创建名为“addressDAO”的bean时出错:调用init方法失败;嵌套异常为org.springframework.data.mapping.PropertyReferenceException:找不到类型AddressEntity的属性findAll
原因:org.springframework.beans.factory.BeanCreationException:创建名为“addressDAO”的bean时出错:调用init方法失败;嵌套异常为org.springframework.data.mapping.PropertyReferenceException:找不到类型AddressEntity的属性findAll
原因:org.springframework.data.mapping.PropertyReferenceException:找不到类型AdressEntity的属性findAll
我是否缺少任何配置。获得解决方案;)
需要创建两个单独的配置类,因为我们不能在同一配置类上使用两个@EnableJpaRepositories
因此,我们创建了以下两个配置类
@EnableJpaRepositories(basePackages = "com.example.jpa.dao")
class JpaConfig {}
@EnableJpaRepositories(repositoryFactoryBeanClass = EnversRevisionRepositoryFactoryBean, basePackages = "com.example.envers.dao")
class EnversConfig {}
class PersonServiceImpl implements PersonService{
@Autowire PersonDAO personDAO;
}
class AddressServiceImpl implements AddressService{
@Autowire AddressDAO addressDAO;
}
@EnableJpaRepositories(basePackages = "com.example.jpa.dao")
class JpaConfig {}
@EnableJpaRepositories(repositoryFactoryBeanClass = EnversRevisionRepositoryFactoryBean, basePackages = "com.example.envers.dao")
class EnversConfig {}