Spring Batch |不支持JdbcPagingItemReader<;T>;支持多个数据源以支持跨多个数据源的联接查询?
我确实有SQL查询读取器for ItemReader,只有一个 但我的查询例外是连接来自两个不同数据源的表并提供单个输出结果。。像下面这样Spring Batch |不支持JdbcPagingItemReader<;T>;支持多个数据源以支持跨多个数据源的联接查询?,spring,spring-batch,Spring,Spring Batch,我确实有SQL查询读取器for ItemReader,只有一个 但我的查询例外是连接来自两个不同数据源的表并提供单个输出结果。。像下面这样 <bean id="userFinder" class="org.springframework.batch.item.database.JdbcPagingItemReader" scope="step"> ... ... class="org.springframew
<bean id="userFinder"
class="org.springframework.batch.item.database.JdbcPagingItemReader"
scope="step">
...
...
class="org.springframework.batch.item.database.support.SqlPagingQueryProviderFactoryBean">
<property name="dataSource1" ref="dataSource1" />
<property name="dataSource2" ref="dataSource2" />
<property name="selectClause"
value="SELECT ALIAS1.COL1, ALIAS2.COL2 " />
<property name="fromClause" value="FROM dataSource1.TABLE1.ALIAS1, dataSource2.TABLE 2.ALIAS2" />
</property>
<property name="sortKey" value="WLT_ID" />
</bean>
</property>
...
...
class=“org.springframework.batch.item.database.support.SqlPagingQueryProviderFactoryBean”>
在单个查询中,您将无法连接两个不同的数据库。我认为在java中,您将无法使用两个数据源来运行一个查询
您可以编写自定义ItemReader并注入这两个数据源。
在java代码中从表和do join中检索数据。但是这将是非常昂贵的操作
DataSource
意味着实际的java.sql.DataSource
?如果是这样的话,那就不是了。我不知道有哪种技术支持通过那样的直接SQL跨数据库连接……是的。在我的应用程序中,我有两个可用的数据源作为JNDI查找。在oracle后端,它们被定义为单独的用户/模式。我想将第一个数据源/模式中的表1与第二个数据源/模式中的表2连接起来。在纯SQL中,我们可以连接来自两个不同模式/用户的表,我在***这个阅读器中寻找支持。这可能吗?替代方法是使用数据库链接(ORACLE)、联合MySQL存储引擎(MySQL)、数据库链接(PostgreSQL)等。。。希望避免自定义实现。