2014-10-20 3 views
0

Я пытаюсь получить значение из таблицы_X. Но эти значения таблиц вставлены в процедуру. Я вызываю процедуру, такую ​​как ps.execute(), и я хотел бы подождать, пока она не закончится, и получить все результаты из Table_X, все выглядит как работа. Но он возвращает только несколько результатов из Table_X не всех. Поэтому я думаю, что это не дожидается завершения процедуры. Таким образом, он возвращает только некоторые вставленные значения.Java Callablestatement не ждет, пока .execute() заканчивается

Как это исправить?

Редактировать: коды;

CallableStatement pstmt = con.prepareCall("{ ? = call "+job.getSP()+" }"); 
pstmt.registerOutParameter(1, Types.INTEGER); 
pstmt.execute(); 

Тогда я вызываю метод

Map<String,String> errors = MTRCMtdJob.GetDataControlErrors(); 

Тот метод получает значение из Table_X

+0

после завершения процедуры вставки, затем выполните следующую процедуру для получения значений .it может работать до неполных вставок всех данных – Divya

ответ

0

Я полагаю, есть только один вопрос, уровень изоляции сделки это позволяет грязным чтение еще до того, транзакция процедуры совершена. Я рекомендую вам поместить чтение раздела таблицы в новый блок транзакций с помощью совершить после транзакции процедуры. Кроме того, проверьте уровень изоляции транзакции.

Смежные вопросы