Consideration
Warning: Spatial column '<name> ' does not match any of the geometry names in the feature. No spatial data will be written
Warning: Spatial column 'GEOM' does not match any of the geometry names in the feature. No spatial data will be written
When this message appears, it means the geometry name of the incoming features do not match the definition of the geometry name in the Geometry Definition table. Attributes defined in the Attribute Definition table are still written. Often, the missing geometry name will be 'GEOM', based on the writer's default name.
This happens in the formats that allow manually assigning a geometry name: Oracle, PostGIS, and Microsoft SQL Server.
Why This Happens
This warning will appear when the geometry name (a row(s)) in the Geometry Definition on the writer doesn’t match the name of an incoming geometry name on the feature(s).
This occurs most often when using Manual Attribute Assignment, as the geometry name is also treated as an attribute.
The geometry name can be seen in the reader or writer expanded feature types. When the geometry has no name assigned to it, <geometry> will be displayed as shown here:
How to Resolve It
Add a GeometryNameSetter, and set the Geometry Name, then go into the writer and ensure that the Geometry Definition matches the name you set. It is best for users to treat Geometry Definition the same way as attributes that can be assigned manually.
Returning to the shapefile example, where the geometry does not have a name, if the Schema Definition mode is set to Automatic, the writer will automatically set the geometry name based on the incoming geometry name or default to the format's default name. When using Manual mode for schema definition, as there isn’t a Geometry name, the writer can’t match it up with what it wants to write. Hence, the red arrow next to the name in a row in the Geometry Definition table:
Once we add the GeometryNameSetter and name the Geometry, the writer matches the Geometry Name to the Geometry Definition and it gets written out correctly.