Как транзакции работают с точки зрения «только для чтения» в Spring JPA + Hibernate?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как транзакции работают с точки зрения «только для чтения» в Spring JPA + Hibernate?

Сообщение Anonymous »

Прежде чем непосредственно задать вопрос, позвольте мне рассказать немного предыстории: недавно я наткнулся на проблему N+1, которую, согласно этой статье, написанной Владом Михалчей, можно решить путем предварительной выборки сущностей из отношений в одном и том же контексте персистентности. Действительно, это решило проблему N+1 (для фиксированного количества запросов в 10 раз). Однако после этой реализации производительность резко снизилась, и я до сих пор пытаюсь понять, почему. Иногда я даже получал тайм-аут при попытке подключения к базе данных с ошибкой «Невозможно получить соединение JDBC».
Итак, мой вопрос: что происходит за кулисами, когда Я использую @Transactional(readOnly=true) в методе? Создает ли блокировку во время работы метода? Если да, то что я могу сделать, чтобы гарантировать, что я нахожусь в том же постоянном контексте и, следовательно, достигаю того, чего хочу, с помощью предварительной выборки?
Все, что могло бы указать мне направление фактического проблема была бы очень признательна.

Подробнее здесь: https://stackoverflow.com/questions/793 ... a-hibernat
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»