2015-02-04 6 views
1

Я заинтересован в замене сериализации java по умолчанию в EclipseLink JPA на json с использованием движка Jackson.
Есть ли свойство, где я могу установить механизм сериализации для всех моих настроек?
Я знаю, что EclipseLink поддерживает сериализацию json с MOXY, но у меня есть другие проблемы с ее использованием. Я ищу некоторые глобальные настройки, которые освободят меня от добавления @Convert в сотни классов.Изменение JPA (EclipseLink) Сериализация Java для использования Jackson/json

Например:

Class A { 
    String B; 
    String C; 
} 
@Entity 
Class D { 
    A a; 
} 

По умолчанию JPA будет хранить поле 'а' как массив байтов, а genreating массив с Java serizalization. Я хочу изменить его на текст и сохранить класс А как json.

ответ

0

Оказывается, это довольно легко сделать с помощью SessionEventListener, который заменяет все конверсии java-сериализации собственным конверсией на основе Джексона.
инициализации Джексон со следующей строкой:

objectMapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL); 

Вы можете поддержать сложный сценарий наследования и почти любой класс Java, необходимый (по редкому исключению вы можете добавить специальные новообращенные).

Дополнительную информацию можно получить: Replacing JPA java serialization engine to JSON

Смежные вопросы