Вот что я обнаружил с большим количеством отладки:
1) Запросы НЕ запускают InstanceLifecycleListener (кроме случаев, когда элементы ОТКЛЮЧЕНЫ), если ПО УМОЛЧАНИЮ группа извлечения (иначе METADATA default-fetch-group) УДАЛЕНА из PersistentManager перед запросом.Другими словами: нельзя использовать метод pm.getFetchPlan (). ClearGroups () , или нужно ДОБАВИТЬ группу извлечения DEFAULT перед выполнением запроса.ТАК ... если необходимо определить программную группу выборок, необходимо принять во внимание, что группа выборок DEFAULT будет (должна!) Присутствовать (то есть все поля, определенные в метаданных!) Для InstanceLifecycleListener для работы.
Обходной путь может быть ОПРЕДЕЛИТЬ группу выборки DEFAULT ТОЛЬКО КЛЮЧОМ (это необходимо) и просто изменить логику для работы с этим.Что я сделал точно ... Результат?
2) метод getObjectById ОСТАНОВИТСЯ, вызывая postLoad !!!После отладки я обнаружил, что для того, чтобы это работало, план извлечения DEFAULT ДОЛЖЕН определять другое поле, кроме КЛЮЧЕВОГО!
Существует полное отсутствие информации о том, как влияют группы извлеченияспособ запуска InstanceLifecycleListener, и Apache JDO (по крайней мере) должен пересмотреть способ, которым это работает (или, по крайней мере, DOCS), чтобы пользователи JDO не сходили с ума с реализацией.