使用具有 JdbcBatchItemWriters 的 CompositeItemWriter 将不同的对象类型写入不同的表
我有一个像这样的嵌套对象,其中数据源是相同的。但是,我需要写入不同的表。这是我的对象的结构。这可能吗?
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();
}
我的用例是独特的,因为我需要根据对象类型以某种方式写入不同的表。这可能吗。如果是这样我怎样才能实现这一目标?
I have a nested object like this where the datasource is the same. However, I need to write to different tables. Here is the structure of my object. Is this possible?
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();
}
My use case is unique as I need to somehow write to different tables based on the object type. Is this possible. and if so how can I achieve this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
改用 JPA 解决方案。我需要编写所有嵌套项目,所以我选择使用 JPA
Used a JPA solution instead. I needed to write all the nested items so I chose to use JPA