首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用JPA检索数据时出错:没有JDBC类型的方言映射:-9

使用JPA检索数据时出错:没有JDBC类型的方言映射:-9
EN

Stack Overflow用户
提问于 2014-05-15 19:03:51
回答 1查看 838关注 0票数 1

我使用以下代码来检索数据。

代码语言:javascript
运行
复制
String query = "SELECT CLIENT_NAME FROM USER_TABLE WHERE USER_ID='10'";
Query qry = entityManager.createNativeQuery(query);
List<Object> data = null;
try {
 data = query.getResultList();
} catch (Exception ex) {
   LOGGER.error("Exception in Database data retrieval ", ex);
   throw ex;
}

这段代码的问题是,它在我的开发环境中工作得很好,但在生产环境中就不行了。我得到了这样的异常

代码语言:javascript
运行
复制
javax.persistence.PersistenceException: org.hibernate.MappingException: No Dialect mapping for JDBC type: -9

我检查过了,然后发现,这是因为我的字段CLIENT_NAME的类型是nvarchar2。因此,我进行了nvarchar类型转换,并使用了以下查询

代码语言:javascript
运行
复制
String query = "SELECT cast(CLIENT_NAME as varchar(100)) FROM USER_TABLE WHERE USER_ID='10'";

它在两种环境下都能很好地工作。但问题是它不能在生产环境中显示某些字符(例如,ű显示为¿)。我在后端使用oracle。在这里,我在开发中使用11g,在生产中使用10g。我认为这与版本有关。这个问题有没有其他的修复方法?

EN

回答 1

Stack Overflow用户

发布于 2014-05-15 22:10:23

您可能想考虑更新版本的方言,如Oracle10gDialect,因为我相信OracleDialect默认使用版本8。

另请参阅:http://docs.oracle.com/cd/B19306_01/java.102/b14355/global.htm#CHDHHJDB

它为jdbc提供了一些额外的配置。从10g开始,jdbc驱动程序还没有完全支持nchar。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23676404

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档