Skip to content

BUG: Некорректное обновление updatedOn для Comment при редактировании #102

@impatient0

Description

@impatient0

Описание Проблемы:

При редактировании комментария (Comment) через метод CommentServiceImpl.updateUserComment, поле updatedOn (аннотированное @LastModifiedDate) в возвращаемом DTO содержало старое значение.

Это происходило потому, что AuditingEntityListener, отвечающий за установку @LastModifiedDate, срабатывает во время фазы "flush" сессии Hibernate. Без явного вызова flush после изменения полей сущности и перед её маппингом в DTO поле updatedOn в возвращаемом объекте могло содержать старое значение.

Шаги для воспроизведения:

  1. Создать комментарий.
  2. Отредактировать комментарий.
  3. Проверить значение updatedOn в ответе – оно равно createdOn.

Ожидаемое поведение:

Поле updatedOn должно отражать фактическое время последнего изменения комментария.

Предлагаемое решение / Реализация фикса:

В методе CommentServiceImpl.updateUserComment заменить вызов commentRepository.save(existedComment) на commentRepository.saveAndFlush(existedComment). Это обеспечит немедленную синхронизацию с БД и срабатывание AuditingEntityListener для обновления updatedOn перед тем, как сущность будет смаплена в DTO и возвращена.

Критерии готовности:

  • Поле updatedOn в CommentDto, возвращаемом после редактирования комментария, содержит актуальное время изменения, отличное от createdOn (если редактирование произошло не в ту же секунду, что и создание).
  • Существующие тесты, проверяющие обновление комментария, проходят и корректно отражают новое поведение updatedOn.

Metadata

Metadata

Assignees

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions