我有兩個數據庫配置javaconfig類 - 一個用於JPA用途,具有transactionManager()和entityManagerFactory()@Bean方法,一個配置類用於非JPA JDBCTemplate查詢提交以訪問該數據庫中的數據。總體思路是使用JDBCTemplate讀取數據並在轉換後將數據保存到基於JPA的數據源中。我正在使用Spring Boot來啓用自動配置。使用Spring Boot自動裝配jpa和非jpa特性的多個數據源
java.lang.IllegalArgumentException: Not an managed type:
我在build.gradle
都spring-boot-starter-jdbc
和spring-boot-starter-data-jpa
:用我的測試失敗。我的直覺是兩個數據源相互碰撞。我如何爲前面提到的兩個用例強制使用這些數據源中的每一個 - 一個用於JPA,另一個用於JDBCTemplate目的?
詳細信息(戴維的答覆後加入):
我的服務類批註的@Service
和我的倉庫類有@Repository
。服務使用@Autowired
使用存儲庫對象,儘管有一些基於JDBCTemplate的服務用於數據檢索。
我的環境更復雜的描述如下(邏輯):JDBCTemplate(DataSource(Database(DB2)))
→Spring Batch Item Reader;Processors; Writer --> Service(Repository(JPADataSource(Database(H2))))
。 Spring批次項目處理器使用服務連接到兩個數據庫。對於Spring批處理,我使用H2 Job回購數據庫(遠程)來保存作業執行詳細信息。這有意義嗎?對於Spring批處理,我使用的是de.codecentric:spring-boot-starter-batch-web:1.0.0.RELEASE
。在通過entityManagerFactory
bean找不到錯誤之後,我想要控制上述組件的接線。
不幸的是,當我試圖按照建議關閉掃描時,我得到'嵌套異常是org.springframework.beans.factory.NoSuchBeanDefinitionException:沒有符合條件的類型資源庫的bean'。 – Naru
如果沒有看到所有的代碼,那麼解釋隨機的單行日誌語句是不可能的。如果您需要存儲庫,爲什麼要禁用它們?也許你需要分享一個項目。 –
我會把你添加到我的github合作者。你的github用戶名是什麼? – Naru