Есть ли способ узнать, находится ли транзакция в «текущем» состоянии в JDBC? Я ничего не нашел в Connection API.Состояние транзакции в JDBC
Thanks
Есть ли способ узнать, находится ли транзакция в «текущем» состоянии в JDBC? Я ничего не нашел в Connection API.Состояние транзакции в JDBC
Thanks
JDBC не отслеживает состояние транзакции. Задача БД отслеживать состояние транзакции.
Учитывая, что у вас все еще есть два способа отслеживания/состояния транзакций.
Вы можете сделать вызов sql в свой db, чтобы запросить конкретную транзакцию. для oracle он будет в таблице транзакций v $, предложенной в this post.
SELECT COUNT(*)
FROM v$transaction t, v$session s, v$mystat
WHERE t.ses_addr = s.saddr AND s.sid = m.sid AND ROWNUM = 1;
Другим решением является использование код транзакции менеджера в некоторых общих структурах, такие, как спящий режим (я считаю, весна тоже).
public interface Session {
public abstract org.hibernate.Transaction getTransaction();
}
public Transaction {
public abstract boolean wasRolledBack() throws org.hibernate.HibernateException;
public abstract boolean wasCommitted() throws org.hibernate.HibernateException;
public abstract boolean isActive() throws org.hibernate.HibernateException;
}
Спасибо за подсказку оракула, это мне поможет. – cadrian
как бы вы определили «текущее состояние»? – skaffman
Я имел в виду нечто вроде «грязного» - обновляю, вставляю и удаляю строки. – cadrian