Java 为什么我的存储库使用主实体管理器?
我一直在尝试通过几个定制查询实现将多个数据源与spring boot连接起来。当我调用这些定制查询时,会使用正确的实体管理器。然而,当我使用基本的CRUDEPository函数时,它会使用主管理器,并产生“非托管类型”错误 以下是我的两个配置源:Java 为什么我的存储库使用主实体管理器?,java,spring-boot,spring-data-jpa,Java,Spring Boot,Spring Data Jpa,我一直在尝试通过几个定制查询实现将多个数据源与spring boot连接起来。当我调用这些定制查询时,会使用正确的实体管理器。然而,当我使用基本的CRUDEPository函数时,它会使用主管理器,并产生“非托管类型”错误 以下是我的两个配置源: @Configuration public class DataSourceConfig { @Bean(name="DB1") @Primary @ConfigurationProperties(prefix="spring
@Configuration
public class DataSourceConfig {
@Bean(name="DB1")
@Primary
@ConfigurationProperties(prefix="spring.datasource")
public DataSource primaryDataSource() {
return DataSourceBuilder.create().build();
}
@Primary
@PersistenceContext(unitName = "primary")
@Qualifier("entityManagerFactory")
@Bean(name = "entityManagerFactory")
public LocalContainerEntityManagerFactoryBean entityManagerFactory(EntityManagerFactoryBuilder builder) {
return builder.dataSource(primaryDataSource())
.persistenceUnit("primary")
.packages("com.company.monitoring.db.primary")
.build();
}
及
使用错误数据源的控制器中的Repo:
import com.company.monitoring.db.secondary.repository.FileAuditLogDAO;
...
@RequestMapping("/eventdetails/")
public class EventDetailsController {
...
@Autowired
private FileAuditLogDAO repository;
...
FileAuditLogDAO位于com.company.monitoring.db.secondary.repository包中
FileAuditLogEntity位于包com.company.monitoring.db.secondary.entity中
我知道主程序正在使用,因为当我将
“com.company.monitoring.db.secondary”
添加到主程序包时,我不再获得非托管类型:class com.company.monitoring.db.secondary.entity.FileAuditLogEntity。我在不同的地方尝试了@enableJPareposities,但没有成功。我在这里做错了什么?从来没有这样做过,但好吧,您需要两个不同的EnableJpaRepositories注释,它们都应该指定其特定的basePackage[Classe]s及其entityManagerFactoryRef。您认为您在代码中的何处指定了EventDetailsController
和/或FileAuditLogDAO
应使用Secondary EntityManager
?@Andreas我在实体管理器工厂的packages方法中指定时,包括存储库的包FileAuditLogDAO。但事实并非如此:要扫描@Entity注释的包的名称。它与spring数据jpa存储库无关。
import com.company.monitoring.db.secondary.repository.FileAuditLogDAO;
...
@RequestMapping("/eventdetails/")
public class EventDetailsController {
...
@Autowired
private FileAuditLogDAO repository;
...