Conversation
…atch подтверждение запроса бронирования
| @Service | ||
| @RequiredArgsConstructor | ||
| @Transactional(readOnly = true) | ||
| public class UserValidationService { |
There was a problem hiding this comment.
сервис можно переместить из пакета model к другим сервисам
возможно, если метод только один, будет удобнее перенести метод в UserService
There was a problem hiding this comment.
перенес. Решил сделать отдельный сервис, потому что еще используется в других сервисах
|
|
||
| @Entity | ||
| @Table(name = "bookings") | ||
| @Data |
There was a problem hiding this comment.
На дипломе будут рекомендовать не использовать Data с сущностями, статьи про это
https://thorben-janssen.com/lombok-hibernate-how-to-avoid-common-pitfalls/
https://habr.com/ru/companies/haulmont/articles/564682/
Воспроизвести одну из проблем, которую описывают в статьях, можно так
- метод не помечаем Transactional
- вызываем сущность через getById
- пытаемся вызвать toString()
- получаем LazyInitializationException
Из-за того, что нет аннотации Transactional, транзакция открывается и сразу закрывается на вызове findById.
Далее пытаемся сделать toString(), и hibernate попытается дозапросить информацию по Lazy полям, что приведет к исключению LazyInitializationException, так как транзакция уже закрыта
Выполнил ТЗ 15 спринта