在websphere上访问项目直接报
org.springframework.web.util.NestedServletException: Request processing failed;
org.hibernate.MappingException: No Dialect mapping for JDBC type: -9
一般出现这个异常:
1、数据库字段类型和JAVA类型不匹配。
2、Hibernate中错误地配置了数据库方言。
检查数据库方言没问题。
再查看数据库字段类型和JAVA类型。
查看java.sql.Types找到对应的类型。
| 编号 | 字段 | 错误代码 |
|---|---|---|
| 第一列文本居中 | ARRAY | 第三列文本居左 |
| 1 | ARRAY | 2003 |
| 2 | BIGINT | -5 |
| 3 | BINARY | -2 |
| 4 | BIT | -7 |
| 5 | BLOB | 2004 |
| 6 | BOOLEAN | 16 |
| 7 | CHAR | 1 |
| 8 | CLOB | 2005 |
| 9 | DATALINK | 70 |
| 10 | DATE | 91 |
| 11 | DECIMAL | 3 |
| 12 | DISTINCT | 2001 |
| 13 | DOUBLE | 8 |
| 14 | FLOAT | 6 |
| 15 | INTEGER | 4 |
| 16 | JAVA_OBJECT | 2000 |
| 17 | LONGNVARCHAR | -16 |
| 18 | LONGVARBINARY | -4 |
| 19 | LONGVARCHAR | -1 |
| 20 | NCHAR | -15 |
| 21 | NCLOB | 2011 |
| 22 | NULL | 0 |
| 23 | NUMERIC | 2 |
| 24 | NVARCHAR | -9 |
| 25 | OTHER | 1111 |
| 26 | REAL | 7 |
| 27 | REF | 2006 |
| 28 | ROWID | -8 |
| 29 | SMALLINT | 5 |
| 30 | SQLXML | 2009 |
| 31 | STRUCT | 2002 |
| 32 | TIME | 92 |
| 33 | TIMESTAMP | 93 |
| 34 | TINYINT | -6 |
| 35 | VARBINARY | -3 |
我的type: -9,根据上面的表。应该是数据库的NVARCHAR和JAVA类型不对导致的。
检查项目发送请求的数据表,发现数据库的某个字段类型为NVARCHAR,java代码里面用string来接收。
把NVARCHAR改成VARCHAR2类型,再访问项目就不报错了!
本文详细解析了在Websphere环境下访问项目时遇到的org.springframework.web.util.NestedServletException异常,具体表现为org.hibernate.MappingException: No Dialect mapping for JDBC type:-9。通过检查数据库字段类型与JAVA类型匹配情况,定位到NVARCHAR与VARCHAR2类型差异,并成功解决了问题。
673

被折叠的 条评论
为什么被折叠?



