由于多个表连接,我的阅读器中的查询需要很长时间才能获取结果。我正在考虑分割我的查询连接的选项,如果可能的话使用临时表。这是一个可行的解决方案?可以Spring批量支持在阅读器,处理器和编写器之间使用临时表吗?
答案 0 :(得分:0)
是的,这是可能的。您应该为您的阅读器,编写器,处理器使用Same DataSource实例。
示例:
var customer = CreateInstanceFromPrivateConstructor<Customer>();
SetPrivateProperty(p=>p.ID, customer, 10);
myContext.Set<Customer>().Attach(customer);
//...and all the above was just for this:
order.setCustomer(customer);
myContext.SaveChanges();
阅读器:
@Component
public class DataSourceDao{
DataSource dataSource;
public DataSource getDataSource() {
return dataSource;
}
@Autowired
public void setDataSource(DataSource dataSource) {
this.dataSource = dataSource;
}
}
作家:
public class MyReader implements ItemReader<POJO_CLASS> {
@Autowired
DataSourceDao dataSource;
@Override
JdbcCursorItemReader<POJO_CLASS> reader= new
JdbcCursorItemReader<>();
public <POJO_CLASS> read() throws Exception, UnexpectedInputException,
ParseException, NonTransientResourceException {
reader.setDataSource(dataSource.getDataSource());
// Implement your read logic
}
}