【发布时间】:2021-04-18 21:15:53
【问题描述】:
我正在使用 Hibernate Spatial、Postgres/Postgis、Spring Boot Gradle。
我目前正在尝试将点数据填充到我的 Postgres/Postgis 数据库中。我能够创建一个点——然而,当我传递我的变量 double longitude 和 double latitude 时,我的 Point 以 (0,0) 的形式写入数据库。
我知道我的变量 double longitude 和 double latitude 有值,因为它们在自己的列中将用户输入的值写入数据库。
当我手动输入坐标时,例如
.createPoint(new Coordinate (-120, 20))
我的点数据正确填充。
为什么传递的是实际的双精度数,而不是我的变量的值?
提前致谢!!
这是我的代码:
import com.vividsolutions.jts.geom.Coordinate;
import com.vividsolutions.jts.geom.GeometryFactory;
import com.vividsolutions.jts.geom.Point;
import com.vividsolutions.jts.geom.PrecisionModel;
import javax.persistence.Entity;
import javax.validation.constraints.NotNull;
@Entity
public class Gem extends AbstractEntity {
@NotNull
double longitude;
@NotNull
double latitude
public Gem() {}
public double getLongitude() {
return longitude;
}
public void setLongitude(double longitude) {
this.longitude = longitude;
}
public double getLatitude() {
return latitude;
}
public void setLatitude(double latitude) {
this.latitude = latitude;
}
public Point getGemPoint() {
return gemPoint;
}
public void setGemPoint(Point gemPoint) {
this.gemPoint = gemPoint;
}
GeometryFactory geomFactory = new GeometryFactory(new PrecisionModel(), 4326);
Point gemPoint = geomFactory.createPoint(new Coordinate(longitude, latitude));
}
【问题讨论】:
标签: java postgresql gradle postgis hibernate-spatial