Я пытаюсь запросить данные из базы данных PostGIS, используя MyBatis, игнорируя геопространственные данные. У меня есть следующая таблица в базе данных:
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.
Как запросить только подмножество столбцов из базы данных?