gpt4 book ai didi

groovy - Spring 数据蒙戈: mapping objects using Jackson annotations

转载 作者:行者123 更新时间:2023-12-02 09:51:55 25 4
gpt4 key购买 nike

我使用 spring-data Mongo (1.3.3) 作为访问 Mongo 的机制。我的域对象是用 Groovy 编写的,我使用 Jackson 注释来定义属性和名称:

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

当我将域对象之一持久保存到 Mongo 时,JsonProperty 注释将被忽略,并且该字段将使用标准对象的字段名称进行持久保存。通过挖掘 Spring Data Mongo documentation ,我发现该库需要 @Field 注释来修改 Mongo 中的实际字段名称。

有没有办法只使用 Jackson 注释而不是使用两个注释来达到相同的结果。也许是 MappingMongoConverter 的“定制”版本?

最佳答案

由于我的应用程序位于 Groovy 中,因此我使用了新的 @AnnotationCollectorAST 转换 ( http://blog.andresteingress.com/2013/01/25/groovy-2-1-the-annotationcollector-annotation/ ) 来“合并”Jackson 和 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

关于groovy - Spring 数据蒙戈: mapping objects using Jackson annotations,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22071437/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com