Никогда не меняйте сущность, если вы не меняете базу данных. Они должны совпадать. Изменение выборки на стремление к сущности саботирует саму идею ленивой загрузки, и в вашем коде могут быть другие места, в которых из-за этого возникают проблемы производительности. Это означает, что если вы изменяете объект, то все и везде ДОЛЖНЫ загружать все эти данные каждый раз, когда они используют этот объект.
То, что вы хотите, это вложенная транзакция. Начните транзакцию в начале вызова метода, который выполняет преобразование JSON, и завершите его в конце метода. Сделайте это, просто добавив транзакционную аннотацию к вызову метода, который содержит это преобразование JSON.
Сделав это, транзакция не будет завершена, когда потребуется информация, и тогда может иметь место ленивая загрузка. Вероятно, в коде есть другие места, где это делается. Ищите их и используйте их как примеры, чтобы основывать свое решение на.
Конечно, если вы будете использовать это в нескольких местах, вы, возможно, захотите вставить его в свой DAO для повторного использования.