Если вы используете аннотацию @Transactional
, вы можете указать менеджер транзакций, который будет использовать , добавив атрибут, заданный для имени компонента или спецификатора. Например, если ваш прикладной контекст определяет несколько менеджеров транзакций с квалификаторами:
<bean id="transactionManager1"
class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory1" />
<qualifier value="account"/>
</bean>
<bean id="transactionManager2"
class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory2" />
<qualifier value="businessData"/>
</bean>
Вы можете использовать спецификатор для указания менеджера транзакций:
public class TransactionalService {
@Transactional("account")
public void setSomethingInAccount() { ... }
@Transactional("businessData")
public void doSomethingInBusinessData() { ... }
}