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クラスで両方を実行できますか、それとも新しいクラスを作成する必要がありますか?