使用GeoTools遇到的两个小问题:nvarchar类型字段无法识别,主键字段无法识别

问题一,无法识别nvarchar字段。

版本,2.7.4及以前。

问题描述:数据库中定义了nvarchar字段,但是GT没有识别。原因是2.7.4及其之前版本的Sqlserver扩展忽略了nvarchar类型,导致程序获得数据库字段时忽略该类型字段。这个问题已经被提交并且得到解决,具体见http://jira.codehaus.org/browse/GEOT-3609

解决方法:自己手动增加识别代码,见org.geotools.jdbc.SQLDialect.registerSqlTypeToClassMappings(Map<Integer, Class<?>>),或者下载新版本,2.7.5及以后的版本已经修正该问题。

问题二,无法识别主键字段。

版本,一切版本。

问题描述:数据库表中定义了主键,但是GT没有识别。严格的说这不是一个BUG,如果你仔细阅读GeoTools关于JDBC的说明,就会发现解决之道(可惜我不够仔细,我是通过查找代码发现的),见http://docs.geotools.org/stable/userguide/library/jdbc/datastore.html最下面。

解决方法:在连接参数中增加一个参数“Expose primary keys”,注意中间的空格,值为‘true’即可。也就是说,你可以选择是否将主键暴露出来,默认是不暴露。

特此记录。

原文地址:https://www.cnblogs.com/sillyemperor/p/2842235.html