Используя плагин GeoTools WFS-T, я создал новую строку, и после коммита у меня есть FeatureId, который .getId () возвращает некрасивую строку, которая выглядит примерно так:
newmy_database:my_table.9223372036854775807
Помимо того, что слово «new» в начале «my_database» является сюрпризом, число никоим образом не отражает первичный ключ новой строки (в данном случае «23»). Справедливо, я подумал, что это может быть какая-то внутренняя система нумерации. Однако теперь я хочу, чтобы внешний ключ в другой таблице получил первичный ключ новой строки в этой таблице, и я не уверен, как получить значение из этого FID. В некоторых местах предлагается использовать FID в запросе, подобном следующему:
Filter filter = filterFactory.id(Collections.singleton(fid));
Query query = new Query(tableName, filter);
SimpleFeatureCollection features = simpleFeatureSource.getFeatures(query);
Но это не удаётся при разборе FID, на подчеркивании всех мест! Это подчеркивание было при создании строки (мне пришлось передать «my_database: my_table» в качестве таблицы для добавления строки).
Я уверен, что либо с идентификатором что-то не так, либо я каким-то образом неправильно его использую. Кто-нибудь может пролить свет?