У меня есть метод на Java, который обернут аннотацией spring Transactional
.Spring Transactional annotation, изоляция не работает для READ_UNCOMMITTED
У меня есть 2 операции внутри, один delete
, другой insert
. Мой оператор ввода должен полагаться на первую операцию (которая является delete
), но теперь из-за первой операции еще не завершена моя ошибка вставки (уникальное ограничение). Но смешно, что, как правило, в рамках одной и той же транзакции, я должен быть в состоянии читать/видеть незавершенную операцию в той же транзакции (моя старая собственная структура способна это сделать), но это не происходит для моего сценария, вторая вставка все еще не работает, поскольку она видит, что данные еще не удалены.
Я стараюсь использовать изоляцию READ_UNCOMMITTED
, но это не сработает.
Я должен поместить эти две операции в одну транзакцию, потому что любой из отказов должен откатить обе операции, я не могу выполнить первую операцию, а затем перейти ко второй.
Как это сделать в Spring framework?
Этот флеш режим действительно убивает меня, как же промывку по умолчанию не по порядку кода ... «его всегда следует определенному порядку », есть ли какой-нибудь документ, к которому я могу обратиться? должна быть какая-то причина для этого ... – GMsoF
в соответствии с этим http://docs.oracle.com/javaee/6/api/javax/persistence/FlushModeType.html, моя конфигурация должна быть по умолчанию как «авто», откуда он не очищается до «всего выполнения запроса»? – GMsoF
http://docs.jboss.org/hibernate/orm/3.5/javadocs/org/hibernate/event/def/AbstractFlushingEventListener.html#performExecutions%28org.hibernate.event.EventSource%29 – shankarsh15