Следующий код не помогает при откате, даже если я выбрасываю исключение нулевого указателя в методе update (). Каждый раз, когда я запускаю код, он вставляет значения в базу данных. Пожалуйста, помогите мне, как я могу откатить транзакцию, если нулевой указатель брошен в методе update (). Я что-то упустил в коде?
@TransactionManagement(value = TransactionManagementType.CONTAINER)
public class Bean implements RemoteIF {
@TransactionAttribute(TransactionAttributeType.REQUIRED)
public void insertIntoDb() {
insert();
update();
}
private Integer update() {
val=0;
try {
Connection con = DbConn.getConnection();
Statement st = con.createStatement();
val1 = st.executeUpdate("INSERT INTO tab VALUES('ab')");
st.close();
throw new NullPointerException();
} catch (Exception e) {
System.out.println(e);
}
return val;
}
private Integer insert() {
int val = 0;
try {
Connection con = DbConn.getConnection();
Statement st = con.createStatement();
val = st.executeUpdate("INSERT INTO tab VALUES('bnm')");
st.close();
} catch (Exception e) {
System.out.println(e);
}
return val;
}
}