使用具有 JdbcBatchItemWriters 的 CompositeItemWriter 将不同的对象类型写入不同的表
Using a CompositeItemWriter that has JdbcBatchItemWriters to write different object types to different tables
我有一个这样的嵌套对象,其中数据源相同。但是,我需要写入不同的表。这是我的对象的结构。这可能吗?
class Project {
ProjectItem projectItem;
ItemOwner owner;
}
@Bean
JdbcBatchItemWriter projectItemWriter(DataSource datasource){
return new JdbcBatchItemWriter<ProjectItem> {
... etc
}
@Bean
JdbcBatchItemWriter itemOwnerWriter(DataSource datasource){
return new JdbcBatchItemWriter<ItemOwner> {
... etc
}
@Bean
CompositeItemWriter<Project> txnWriter() {
return new CompositeItemWriterBuilder<Department>()
.delegates(projectItemWriter(null),
itemOwnerWriter(null))
.build();
}
我的用例很独特,因为我需要根据对象类型以某种方式写入不同的表。这可能吗。如果可以,我该如何实现?
改为使用 JPA 解决方案。我需要编写所有嵌套项,所以我选择使用 JPA
我有一个这样的嵌套对象,其中数据源相同。但是,我需要写入不同的表。这是我的对象的结构。这可能吗?
class Project {
ProjectItem projectItem;
ItemOwner owner;
}
@Bean
JdbcBatchItemWriter projectItemWriter(DataSource datasource){
return new JdbcBatchItemWriter<ProjectItem> {
... etc
}
@Bean
JdbcBatchItemWriter itemOwnerWriter(DataSource datasource){
return new JdbcBatchItemWriter<ItemOwner> {
... etc
}
@Bean
CompositeItemWriter<Project> txnWriter() {
return new CompositeItemWriterBuilder<Department>()
.delegates(projectItemWriter(null),
itemOwnerWriter(null))
.build();
}
我的用例很独特,因为我需要根据对象类型以某种方式写入不同的表。这可能吗。如果可以,我该如何实现?
改为使用 JPA 解决方案。我需要编写所有嵌套项,所以我选择使用 JPA