Каково различие между использованием @Transactional и шаблоном Spring?

С точки зрения теории,

<xsl:if test="gsmsg/barcode">

проверяет наличие элемента barcode.

Если вы хотите проверить наличие текстового значения, выполните:

<xsl:if test="string(gsmsg/barcode)">

или:

<xsl:if test="gsmsg/barcode/text()">
8
задан Bill the Lizard 2 June 2009 в 00:08
поделиться

4 ответа

Разница в том, что использование демаркации транзакций на основе аннотаций ( @Transactional ) и TransactionTemplate заключается в использовании TransactionTemplate связывает вас с инфраструктурой транзакций Spring и означает, что вы будете программно обрабатывать установку статуса транзакции, если транзакция должна быть откатана. Вы можете использовать разграничение транзакций на основе аннотаций с поддержкой транзакций Spring или с транзакциями AspectJ вне контейнера Spring.

См. Также онлайн-документацию для транзакций в Spring .

3
ответ дан 5 December 2019 в 20:18
поделиться

Классы шаблонов Spring предназначены только для предоставления более удобного API для выполнения операций сохранения - они не работают с транзакциями. Если вы хотите иметь транзакционные операции, вам нужно либо использовать подход аннотации @Transactional, либо использовать TransactionTemplate.

4
ответ дан 5 December 2019 в 20:18
поделиться

Когда вы используете @transactional с правильной конфигурацией Spring, Spring распознает, что методу нужна транзакция, и будет обрабатывать создание транзакции, фиксацию и закрытие для вас.

Как сказал Скаффман, @transactional не привязан напрямую к классам шаблона. Их можно использовать для любого класса, которому могут потребоваться транзакции.

1
ответ дан 5 December 2019 в 20:18
поделиться

Означает ли вы, что usin @transactional инкапсулирует мои методы dao с помощью commit, close или при использовании шаблона транзакции Spring (jpatemplate, hibernatetemplate)?

0
ответ дан 5 December 2019 в 20:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: