Сценарий:
Я использую JPA и базу данных MySQL. Я наблюдаю странное поведение в своем приложении, когда значение неожиданно обновляется в базе данных. Я хотел бы определить, откуда в Java поступает этот запрос.
Я включил ведение журнала в своей базе данных MySQL и вижу, что выполняется запрос UPDATE. Как в Java определить, откуда исходит этот вызов? Я ищу стратегии, как решить эту проблему.
JPA генерирует обновления в результате изменений атрибутов объекта Java (для объектов, привязанных к сеансу JPA), и это будет происходить всякий раз, когда сеанс сбрасывается. Если вы знаете поле Java, которое было отправлено в UPDATE, вы можете установить для него точку наблюдения в отладчике, чтобы узнать, где было обновлено поле.
Вы можете зарегистрировать прослушиватель событий в JPA. Он сообщает вам, когда произойдет сохранение / обновление / удаление, и, следовательно, откуда




Возможна регистрация. Каждый метод, ведущий к запросу, должен регистрировать, что он собирается это сделать, и (короче) какой запрос он будет запрашивать.