Spring Data Mongo: отображение объектов с использованием аннотаций Джексона

Я использую Spring-data Mongo (1.3.3) в качестве механизма доступа к Mongo. Мои доменные объекты написаны на Groovy, и я использую аннотации Джексона для определения свойств и имен:

@JsonProperty('is_author')
boolean author = false
@JsonProperty('author_info')
AuthorInfo authorInfo

Когда я сохраняю один из моих доменных объектов в Mongo, аннотация JsonProperty игнорируется, и поле сохраняется с использованием имени поля стандартного объекта. Покопавшись в документации Spring Data Mongo, я обнаружил, что библиотека ожидает @Field аннотация для изменения фактического имени поля в Mongo.

Есть ли способ использовать только аннотации Джексона вместо двух аннотаций для достижения одинаковых результатов. Может быть, "настроенная" версия MappingMongoConverter?

1 ответ

Так как мое приложение находится в Groovy, я использовал новый @AnnotationCollectorПреобразование AST ( http://blog.andresteingress.com/2013/01/25/groovy-2-1-the-annotationcollector-annotation/) "объединяет" аннотации Джексона и Spring Data Mongo. Вот как это выглядит: просто и эффективно!

package com.someapp
import com.fasterxml.jackson.annotation.JsonProperty 
import groovy.transform.AnnotationCollector 
import org.springframework.data.mongodb.core.mapping.Field 
@AnnotationCollector([Field, JsonProperty]) 
public @interface JsonMongoProperty {}

А вот как это используется:

   @JsonMongoProperty('is_author')
   boolean author = false
   @JsonMongoProperty('author_info')
   AuthorInfo authorInfo
Другие вопросы по тегам