0

我正在使用 sql2o 将 PostgreSQL 行映射到 java 对象。

我有一个表,它有一个类型的列POINT和一个带有两个Doubles 的 java 模型,它们都代表纬度和经度。

为了在数据库中保存一个对象,我正在做这样的事情:

public void save()
{
    try(Connection con = DB.sql2o.open()) {
        String sql = "INSERT INTO my_table(geom) VALUES (SetSRID(CAST(:geom AS geometry), 4326));";
        con.createQuery(sql)
            .addParameter("geom", "POINT(" + this.latitude + " " + this.longitude+ ")")
            .executeUpdate();
    }
}

但现在我想检索我存储的对象。我怎样才能做到这一点?如何将 a 映射POINT到两个Doubles。

4

1 回答 1

0

我设法得到了我自己问题的答案,这里是代码:

public List<MyModel> models()
{
    try(Connection con = DB.sql2o.open()) {
        String sql = "SELECT ST_X(geom) AS latitude, ST_Y(geom) AS longitude FROM my_table;";
        List<MyModel> models = con.createQuery(sql)
            .executeAndFetch(MyModel.class);

        return models;
    }
}
于 2016-08-27T22:43:26.580 回答