【发布时间】:2020-02-26 02:55:46
【问题描述】:
我正在编写一个 Spring Batch 作业,不关心重新启动,也不希望为 Spring Batch 数据库对象创建、保护和管理 Oracle 模式的麻烦。文件系统上的 H2 对我们来说已经绰绰有余了。
问题是我正在编写一个需要连接到 Oracle 数据库的批处理作业,并且仅仅试图获取 2 个数据源、事务管理器和实体管理器就惨遭失败。现在我正在尝试两个H2数据库,甚至还没有尝试配置Oracle数据库。
我过去曾在其他 Spring Boot 应用程序中成功使用过两个 Oracle 数据源,但这是我第一次尝试使用带有配置代码来创建数据源的 Spring Batch。
我尝试创建两个DataSource、EntityManagerFactoryBean 和TransactionManager,其中一个使用默认spring.datasources 配置、默认bean 名称和@Primary。
我尝试使用不同的 bean 名称创建第二个 DataSource、EntityManagerFactoryBean 和 TransactionManager。这似乎存在TransactionManager orEntityManager 已分配给线程的问题。
我尝试为批处理创建 dataSource,但遇到了循环 bean 创建错误。
我已尝试创建 BatchConfigurer,但遇到了循环 bean 创建错误。
我已尝试创建JobRepositoryFactoryBean,但仍会创建默认值。
我尝试在我的 @Entity 课程中使用 @PersistenceContext。
它不应该这么难,所以我一定错过了一些东西。任何帮助将不胜感激。
谢谢,韦斯。
【问题讨论】:
-
谢谢。这是一个不同的错误,但我通读了它。唯一新的是定义
DefaultBatchConfigurer@Component。我试过了,但它并没有改变我的结果,因为我能够删除它并且仍然获得最终的“成功”。
标签: spring jpa spring-batch