Я вижу много примеров Mapper или @BeforeMapping, которые изменят исходный объект.
Я бы хотел заменить исходный объект перед отображением вместо изменения источника. Возможно ли это?
В качестве примера я бы возвратил расширенный класс (CGlib), который будет обрабатывать свойства так, как я хочу.
Идея возникла:
Я использую MapStruct для преобразования @Entity в DTO. Я хочу меньшую полезную нагрузку.
Теперь я устанавливаю поле в null в зависимости от моего «mappingContext», когда эти поля не нужны в полезной нагрузке.
Я хотел бы, насколько это возможно, не устанавливать значения полей в объектах @Entity, так как это может привести к изменениям БД, если объекты все еще присоединены к сессии / EntityManager. (или это они повторно объединены в БД).
Я также не хотел бы использовать «em.detach», поскольку это означало бы, что мой преобразователь «магически» связан с кодом до или после сопоставления.