使用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’即可。也就是说,你可以选择是否将主键暴露出来,默认是不暴露。

 

特此记录。

posted on 2013-01-02 16:55  索夫特威尔  阅读(1157)  评论(0编辑  收藏  举报

导航