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 / settersを使用して別の変数を作成し、@ 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に追加し、2番目のケースでは、ジオメトリをGML形式に変換してgmlに追加する必要があります。同じJsonSerializerクラスで両方を実行できますか、それとも新しいクラスを作成する必要がありますか?

4

1 に答える 1

2

@JsonSerializerをメソッドにアタッチしているので、同じ値を含め、必要なものを返す別のgetXXXメソッドを作成できないのはなぜですか。

于 2013-01-18T20:11:33.320 に答える