Geoserver WFS跨层过滤和字符串ID

时间:2015-11-17 15:16:48

标签: cql geoserver

我有一个Geoserver WFS请求,其中包含基于跨层过滤器的cql,如下所示:

...&CQL_FILTER=INTERSECTS(the_geom, querySingle('myLayerName','the_geom','the_id = F338'))

这不起作用。 Geoserver给了我这个错误信息:

  

java.lang.NullPointerException:PropertyDescriptor为null - 你呢?   请求一个不存在的房产?

如果我将过滤器更改为:

&CQL_FILTER=INTERSECTS(the_geom, querySingle('myLayerName','the_geom','INCLUDE'))

它正在运作。

第一个例子可能出现什么问题?事实上,具有值F338的id确实存在。

Geoserver是否期望一个整数作为id?在CQL中,过滤器可以是字符串,但必须引用它们。在我的例子中,我显然无法引用该值,因为querySingle函数的整个参数本身就是一个引用。

1 个答案:

答案 0 :(得分:3)

对于字符串比较,您需要输入两个单引号,即 'the_id ='''F338'''。 (一个双引号不起作用)

这个愚蠢的无证小东西花了我5个小时的尝试和错误......