使用GeoTools遇到的两个小问题:nvarchar类型字段无法识别,主键字段无法识别
2013-02-15 00:19
302 查看
问题一,无法识别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’即可。也就是说,你可以选择是否将主键暴露出来,默认是不暴露。
版本,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’即可。也就是说,你可以选择是否将主键暴露出来,默认是不暴露。
相关文章推荐
- 使用GeoTools遇到的两个小问题:nvarchar类型字段无法识别,主键字段无法识别
- 关于Entity Framework更新的几种方式以及可能遇到的问题(附加类型“Model”的实体失败,因为相同类型的其他实体已具有相同的主键值)在使用 "Attach" 方法或者将实体的状态设置为 "Unchanged" 或 "Modified" 时如果图形中的任何实体具有冲突键值,则可能会发生上述行为
- VS2015,qt 5.7.1,编译使用QString的toWCharArray时出现无法解析的toWCharArray(unsigned char*)的问题,无法正确识别WChar_t类型
- 在使用CommonComplexAdapter时遇到的类型无法转换问题
- 在使用Arduino中遇到的问题(无法使用中文注释、程序无法下载)
- 最近遇到VS.Net的两个问题--无法调试,未加载符号和后台代码无法调用控件
- 使用Hibernate时如果遇到SQL数据库字段中有使用到SQL关键字时无法执行的解决方案
- Solr schema.xml中无法使用非string类型(long,int)的id问题
- Oracle中Number类型字段使用.netTiers和CodeSmith问题的解决方案
- Microsoft SQL Server中条件字段是Nvarchar类型的,条件有中文的无法查询的原因及处理方法
- 使用ASP.NET MVC 2编程时遇到的两个小问题
- 使用lottie遇到的两个问题 4000
- Oracle中Number类型字段使用.netTiers和CodeSmith问题的解决方案
- win10使用tensorboard遇到无法显示问题
- (4.1.36.9)使用isInEditMode解决可视化编辑器无法识别自定义控件的问题
- 使用STL map 时遇到的两个问题
- 遇到问题-------perl无法使用多线程This Perl not built to support threads
- mysql存储过程中两个CURSOR嵌套使用遇到的有关问题
- 吐槽。学习遇到的问题--虚拟机无法识别usb
- linux复制虚拟机网卡无法使用及新增网卡不被识别问题解决