我有在它跨層過濾器基於CQL,看起來像這樣一個利用Geoserver WFS請求:利用Geoserver WFS跨層過濾和字符串ID
...&CQL_FILTER=INTERSECTS(the_geom, querySingle('myLayerName','the_geom','the_id = F338'))
這是行不通的。利用Geoserver是給我這個錯誤消息:
顯示java.lang.NullPointerException:PropertyDescriptor的是空 - 你 請求的屬性不存在?
,如果我的過濾器改成這樣:
&CQL_FILTER=INTERSECTS(the_geom, querySingle('myLayerName','the_geom','INCLUDE'))
這是工作。
在第一個例子中會出現什麼問題?實際上存在值爲F338的ID。
難道Geoserver需要一個整數作爲id嗎?在CQL中,過濾器可以是字符串,但必須引用它們。在我的例子中,我顯然不能真正引用該值,因爲querySingle
函數的整個參數本身就是一個引號。
如果你用「‘the_id’=‘F338’」作爲過濾器會發生什麼?也是the_id fid?如果是這樣的話,你可能想用'IN(F338)' –
它在'the_id'是'number'類型時有效。你的第一個猜測也不起作用。我如何設置圖層上的'fid'來嘗試你的第二個猜測? Thx – Hinrich