Когда я запускаю CallableStatement
в PL / SQL DB, он зависает. Я думаю, что это проблема основного потока , но я не знаю, как ее исправить.
Мой OracleService
класс:
@Service
public class OracleService {
private static final Logger LOG = LoggerFactory.getLogger(OracleService.class);
private static final String PROCEDURE = "{ call <USER>.<PACKAGE>.<PROCEDURE_NAME>(?, ?) }";
@Autowired
private OracleConfig oracleConfig;
public void testProcedure() {
try (Connection connection = oracleConfig.connection()) {
connection.setAutoCommit(true);
CallableStatement callableStatement = connection.prepareCall(PROCEDURE);
int index = 1;
Date currDate = new Date();
callableStatement.setDate(index++, new java.sql.Date(currDate.getTime()));
callableStatement.registerOutParameter(index++, OracleTypes.CURSOR);
callableStatement.execute(); // Here it is getting stucked
// Processing data
} catch (SQLException e) {
e.printStackTrace();
}
}
}
И это называется просто CommandLineRunner
в Application
классе:
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@Bean
CommandLineRunner lookup() {
return args -> {
OracleService service = new OracleService();
service.testProcedure();
};
}
}
Если кто-нибудь знает, пожалуйста, помогите мне)