Pull to refresh

Comments 5

Хотите улучшить производительность - учитесь писать SQL запросы, а не полагайтесь на ORM.

Поддержу.

ORM в большинстве своём прекрасно выглядят на hello world, но по мере усложнения задачи, очень быстро превращают разработку в борьбу с собой и в результате получается и кривая база и кривой код.

(Всё сказанное - ИМХО)

А какие запросы писать? Сеоекты по айди и апдейты? Зачем?

Я бы предложил для случаев, когда идёт микс из обращений к БД и внешним сервисам (читай -- медленное I/O), и мы переходим на ручное управление транзакциями, не стыдливо комментирировать аннотацию

//@Transactional
public void withExternalServiceCallAfter() {
	transactionTemplate.executeWithoutResult(transactionStatus -> {
    		System.out.println(personRepository.findAll());
	});

	externalService.externalCall();
}

... а смело вешать

@Transactional(propagation = Propagation.NEVER)
public void withExternalServiceCallAfter() {...}

чтобы немного подстраховаться от потенциальных проблем.

Какие потенциальные проблемы могут быть, когда вешаем @Transactional на сервис, и такой сервис вызывает другой сервис с такой же аннотацией? Есть статья на эту тему?

Sign up to leave a comment.