我有一个StoredProcedure这是初始化编译。春天 - 您可以在初始化后重新编译StoredProcedure吗?
有时候逻辑要求我使用不同的存储过程。
我试过了,并且未能重置存储过程的名称。数据仍然使用原始存储过程进行检索。
有没有办法做到这一点?
这里是表示类初始化的简化版本,并试图以不同的存储过程的名称重新编译:
import org.springframework.jdbc.object.StoredProcedure;
public class MyDAOImpl extends StoredProcedure implements MyDAO {
@Autowired
public MyDAOImpl(DataSource dataSource, String originalSPName) {
super(dataSource, originalSPName); // invokes StoredProcedure constructor
compile();
}
public List<String> useOtherStoredProcedure(){
super.setSql("otherSPName");
compile();
// Error: Data is still retrieved with original StoredProcedure name
Map<String, Object> data = this.executeSP();
}
}
为什么不创建两个'StoredProcedure'实现? – Gedrox
@Gedrox我正在朝那个方向走,但宁可不走 - 长篇故事 –
@Gedrox大量的共享代码和客户端代码需要能够在不改变DAO的情况下调用任一过程。这是否意味着我需要创建一个抽象类的两个实现......? (我对Java很陌生) –