Пример Spring Boot programmatic transaction, spring data jpa

168
23 декабря 2018, 08:30

Ищу пример реализации программного управления транзакциями в Spring Boot и Spring Data JPA. Везде только для spring framework. И в документации по Spring Boot ничего по этому поводу нормального нет.

И еще вопрос, нужно ли настраивать бины в spring boot: Bean(name = "dataSource"), @Bean(name = "sessionFactory"), @Bean(name = "transactionManager") и другие как это делается в Spring Framework, или же в Spring Boot достаточно аннотации @EnableTransactionManagement.

Answer 1

Да, бины надо настраивать, иначе они будут сконфигурированы по своему. Но, для того, чтобы конфигурация началась надо ставить @EnableTransactionManagement и добавить в pom.xml

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
    <version>${spring-boot-starter-data-jpa.version}</version>
</dependency>

Пример можно взять здесь. В примере используется аннотация @Transactional для демарковки транзакций.

Если есть необходимость использовать транзакции программатично, то нужно читать тут.

Answer 2

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

@SpringBootApplication
@EnableJpaRepositories(enableDefaultTransactions = false)
public class SpringBootApp {
    public static void main(String[] args) {
        SpringApplication.run(SpringBootApp.class, args);
    }
}

Далее просто навешивайте аннотацию @Transactional на методы ваших сервисов. (Никакого отличия от спринга без бута).

Если интересно как спринг бут конфигурирует transaction manager, hibernate и containerFBean, то можете посмотреть в этом классе.

READ ALSO
Неясный стек исключений в приложении javaFx

Неясный стек исключений в приложении javaFx

Коллеги, добрый день! Вот такой стек исключения выдается при запуске собранного мавеном джарника моего приложения:

169
Задача с базой данных (про игру)

Задача с базой данных (про игру)

Попытка объяснить технически:

166
Вывести список ближайших дат

Вывести список ближайших дат

Есть список имен и дней рожденияНужно получить список имен, у которых в ближайшие две недели будет день рождения, используя (желательно) java

178
самопроизвольное отключение WebSocket

самопроизвольное отключение WebSocket

Есть такой коннект Вебсоккета, использую библиотеку:

156