1

我在 Hibernate 注释中有一个问题。我有一个实体,因为我有一个列,我正在使用 @JsonSerialize 将值转换为不同的格式,并使用 @JsonProperty 我将其写入输出 json 中的不同字段:

@Transient
@Type(type = "org.hibernatespatial.GeometryUserType")
@Column(name = "the_geom", columnDefinition = "Geometry")
Geometry gml;

@JsonProperty("wkt")
@JsonSerialize(using = JsonGeometrySerializer.class)
public Geometry getGeom() {
    return geom;
}

public void setGeom(Geometry geom) {
    this.geom = geom;
}

现在我想为来自 the_geom 列的相同几何创建一个不同的属性,如 @JsonProperty("gml") 并将其写入输出 json 中的不同字段。有没有办法可以在@JsonProperty 中指定多个值?我尝试使用 getter/setter 创建另一个变量并使用 @Trancient 但不确定如何将 the_geom 值发送到该序列化程序。请帮忙。

我尝试了这样的事情并没有奏效:

    @Transient
@Type(type = "org.hibernatespatial.GeometryUserType")
@Column(name = "the_geom", columnDefinition = "Geometry")
Geometry gml;

@JsonSerialize(using = JsonGeometrySerializer.class)
public Geometry getGml() {
    return gml;
}

public void setGml(Geometry gml) {
    this.gml = gml;
}

所以在第一种情况下,几何应该转换为 wkt 并添加到 json 中,而在第二种情况下,几何应该转换为 GML 格式并添加到 gml。我可以有相同的 JsonSerializer 类来做这两者还是我必须写一个新的?

4

1 回答 1

2

由于您将 @JsonSerializer 附加到该方法,是什么阻止您创建另一个 getXXX 方法返回您想要的任何内容,包括相同的值?

于 2013-01-18T20:11:33.320 回答