Я пытался вызвать хранимую процедуру из моего java кода, используя многопоточность, я сделал это двумя способами. Я хочу знать, какой из них правильный и в чем преимущество использования этого первого способа ==========
try {
ExecutorService executorService = Executors.newFixedThreadPool(10);
executorService.execute(() -> {
StoredProcedureQuery query = entityManager
.createStoredProcedureQuery("procuderName")
.registerStoredProcedureParameter(1, String.class, ParameterMode.IN)
.registerStoredProcedureParameter(2, Number.class, ParameterMode.IN)
.registerStoredProcedureParameter(3, String.class, ParameterMode.IN)
.registerStoredProcedureParameter(4, String.class, ParameterMode.IN)
.registerStoredProcedureParameter(5, String.class, ParameterMode.IN)
.registerStoredProcedureParameter(6, Number.class, ParameterMode.IN)
.registerStoredProcedureParameter(7, Number.class, ParameterMode.IN)
.setParameter(1, "1")
.setParameter(2, 1)
.setParameter(3, "1")
.setParameter(4, "1")
.setParameter(5, "33101")
.setParameter(6, 1)
.setParameter(7, 1);
query.execute();
});
} catch (Exception e) {
throw new MyException("Exception ", " excption message ");
}
2-й способ =======
try {
ListeningExecutorService executor = MoreExecutors.listeningDecorator(Executors.newCachedThreadPool());
executor.submit(() -> {
StoredProcedureQuery query = cRtlCarrierPrefFacade.getEntityManager()
.createStoredProcedureQuery("procuderName")
.registerStoredProcedureParameter(1, String.class, ParameterMode.IN)
.registerStoredProcedureParameter(2, Number.class, ParameterMode.IN)
.registerStoredProcedureParameter(3, String.class, ParameterMode.IN)
.registerStoredProcedureParameter(4, String.class, ParameterMode.IN)
.registerStoredProcedureParameter(5, String.class, ParameterMode.IN)
.registerStoredProcedureParameter(6, Number.class, ParameterMode.IN)
.registerStoredProcedureParameter(7, Number.class, ParameterMode.IN)
.setParameter(1, "1")
.setParameter(2, 1)
.setParameter(3, "1")
.setParameter(4, "1")
.setParameter(5, "33101")
.setParameter(6, 1)
.setParameter(7, 1);
query.execute();
});
} catch (Exception e) {
throw new MyException("Exception ", " excption message ");
}