Я хотел бы провести аудит своих сущностей через JDO, используя одного из слушателей жизненного цикла.Спецификация указывает, что любые изменения, которые я делаю внутри слушателя, будут частью исходной транзакции.Итак, что я делаю, это сохраняю сущность аудита для другой сущности, вызывая PersistenceManager.makePersistent для сущности аудита.Затем, чтобы избежать бесконечного цикла, я игнорирую любые события для объекта аудита, который я только что сохранил.В противном случае Data Nucleus не мешает мне сделать такую серьезную ошибку.
В спецификации JDO ничего не говорится о том, разрешен ли доступ к PersistenceManager из прослушивателя жизненного цикла, или о каких-либо других последствиях, если вы это делаете (кроме изменений будут в той же транзакции).
Хотя я могу реализовать прослушиватель аудита таким образом, мне интересно, если это плохая идея, кроме возможности переполнения стека, как указано выше.