В соответствии с этим ответом: Is com.vividsolutions.jts.geom.Geometry directly transportable using requestfactory? Геометрия (конкретный случай типа, который), не переносимый с использованием requestfactory.Как сделать запрос заводским без транспортабельного типа переносимым?
Так будет ли это работать? :
@Entity
public class Poi {
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Id
private Integer id;
@Type(type="org.hibernate.spatial.GeometryType")
private Geometry geom;
//bi-directional many-to-one association to PoiCateg
@ManyToOne
@JoinColumn(name="id_cat")
private PoiCateg poiCateg;
@Version
private Integer version;
public Poi() {
}
public Integer getId() {
return this.id;
}
public void setId(Integer id) {
this.id = id;
}
public Geometry getGeom() {
return this.geom;
}
public void setGeom(Geometry geom) {
this.geom = geom;
}
public PoiCateg getPoiCateg() {
return this.poiCateg;
}
public void setPoiCateg(PoiCateg poiCateg) {
this.poiCateg = poiCateg;
}
//not your standard getters and setters
public String getGeomClient() {
return //result of method that converts from Geometry object to WKT string representation
}
public void setGeomClient(String geom) {
this.geom = // result of method that converts from String to Geometry
}
}
, а затем мой модифицированный объект прокси-сервер для Пои будет выглядеть так:
@ProxyFor(value=Poi.class)
public interface PoiProxy implements EntityProxy {
public Integer getId() ;
public void setId(Integer id);
public PoiCategEntityProxy getPoiCateg() ;
public void setPoiCateg(PoiCateg poiCateg);
//not your standard getters and setters
public String getGeomClient() ;
public void setGeomClient(String geom) ;
}
так getGeomClient и setGeomClient в объекте сервера содержат тип геометрии это будет проблема на клиенте?
EDIT1: забыл о виртуальной версии @Version Integer; ошибка исправлена.
будет ли мой подход считать плохой практикой, в отличие от использования обертки (вы сказали, что это самый простой не лучший способ)? – osh
Я не думаю, что есть «лучший» способ. Как насчет наличия поля типа String и, возможно, создания геометрии «на лету» (возможно, кэшированного) для случаев, когда вам нужно иметь дело с ним, есть объект? («лучший» способ, вероятно, состоял бы в том, чтобы избежать ненужных преобразований) –