Dozer не может получить карту. Ошибка Javassist, это UnmodifiedMap

Я пытаюсь скопировать сущность, чтобы создать новую сущность из Hibernate с помощью Dozer.

До сих пор все прошло хорошо. Но в одном поле включена ленивая загрузка. Dozer ожидает Map, но поскольку он загружается лениво, он получает java.util.Collections$UnmodifiableMap.

Есть ли способ заставить его загрузить «настоящий» Map-объект?

Я пытался установить подсказку поля в сопоставлении XML, но безрезультатно. Есть ли какой-нибудь хороший прокси-сервер Javassist / Hibernate для решения проблемы с немодифицируемой картой?

С Уважением


person Robin Jonsson    schedule 31.01.2014    source источник
comment
Вместо Dozer рекомендую использовать Mapstruct!   -  person sorencito    schedule 31.01.2014


Ответы (1)


Не уверен насчет Javassist/Hibernate, но пробовали ли вы создать собственный конвертер для этого поля? По сути, это позволит вам написать свой мини-сниппет Java для передачи данных в этом конкретном поле.

person M21B8    schedule 31.01.2014
comment
Любые советы о том, как это сделать? Это через setCustomFieldMapping? Как мне заставить его конвертировать только указанное поле? С Уважением - person Robin Jonsson; 01.02.2014
comment
Взгляните на решение здесь stackoverflow.com/questions/5552379/ . Здесь показано, как создать сопоставление и как указать его в XML-файле сопоставления. - person M21B8; 03.02.2014