Spring boot jpa не перехватывает исключение при возникновении исключения во время выполнения процедуры с помощью диспетчера сущностей - PullRequest
0 голосов
/ 17 октября 2019

У меня есть процедура в SQL Server, и я выполняю эту процедуру с помощью диспетчера сущностей в приложении весенней загрузки.

Когда в этой процедуре выдается исключение, метод, который он выполняет, эта процедура не перехватываетисключение (я включил исключение постоянства в блоке catch).

Любая помощь будет принята с благодарностью.

@Configuration
public class SampleOperations {

@Autowired
@PersistenceContext(unitName = "SampleUnit")
@Qualifier("SampleEntityManagerFactory")
private EntityManager entityMgr;
public void method1(DModel mapObject) throws CustomException {
    boolean queryStatus = false;
    try {
        StoredProcedureQuery sp = entityMgr.createStoredProcedureQuery("proc_clean_current_version_tables");
        sp.registerStoredProcedureParameter(1, String.class, ParameterMode.IN);
        sp.registerStoredProcedureParameter(2, String.class, ParameterMode.IN);
        sp.setParameter(1, mapObject.getCountry());
        sp.setParameter(2, mapObject.getVersion());
        sp.execute();
        entityMgr.close();
    } catch (IllegalArgumentException | PersistenceException e) {
        throw new Customxception(
                "Unable to execute procedure ");
    }
}
}

SQL-процедура сервера

 BEGIN TRY
                    DROP TABLE IF EXISTS #get_col_hdr;
                     CREATE TABLE #get_col_hdr(colName VARCHAR(MAX));
                     INSERT INTO #get_col_hdr
                     EXEC proc_get_column_header 
                          @tableId, 
                          @cntr;
                     SELECT @columnHeader = colName
                     FROM #get_col_hdr;
 END TRY
 BEGIN CATCH
  set @error_message = 'Unable to import tables from databases 
.'+ERROR_MESSAGE();
 THROW 60000, @error_message, 1;
 END CATCH
...