未为本机查询定义使用命名参数。根据JPA规范(第3.6.3节“ 命名参数”):
命名参数遵循第4.4.1节中定义的标识符规则。命名参数的使用适用于Java Persistence查询语言,而不是为本机查询定义的。 仅位置参数绑定可用于本机查询。
因此,请尝试以下操作:
String queryString = "select * from Cell c where ST_DWithin(c.shape, SetSRID(ST_GeomFromEWKT('POINT(?1 ?2)'),4326), 0.1)";Query query = Cell.em().createNativeQuery(queryString, Cell.class);query.setParameter(1, longitude);query.setParameter(2, latitude);请注意,在JPA> = 2.0中,可以在本机查询中使用命名参数。



