【发布时间】:2011-12-08 07:28:11
【问题描述】:
我正在尝试使用 MyBatis 从 PostGIS 数据库中查询数据,而忽略了地理空间数据。我在数据库中有下表:
CREATE TABLE salesgeometry
(
id bigint NOT NULL,
label character varying(255),
type character varying(255),
geom geometry,
CONSTRAINT salesgeometry_pkey PRIMARY KEY (id ),
CONSTRAINT enforce_dims_geom CHECK (st_ndims(geom) = 2),
CONSTRAINT enforce_srid_geom CHECK (st_srid(geom) = 4326)
)
我正在尝试使用此注释将其与 MyBatis 进行映射:
@Select("SELECT id, type, label FROM salesgeometry WHERE ST_Within(" +
"ST_GeomFromText('POINT(#{longitude} #{latitude})', 4326), geom) " +
"AND type = #{type}")
Geometry getGeometryAtLocation(
@NotNull @Param("type") String geometryType,
@NotNull @Param("longitude") BigDecimal longitude,
@NotNull @Param("latitude") BigDecimal latitude
);
目标类有这样的字段:
public class Geometry {
private long id;
private String type;
private String label;
...
}
不幸的是,这不起作用,而是我得到了一个
org.postgresql.util.PSQLException: The column index is out of range: 2, number of columns: 1.
如何仅从数据库中查询列的子集?
【问题讨论】:
标签: java ibatis postgis mybatis