Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle 使用JPA检索数据时出错:没有JDBC类型的方言映射:-9_Oracle_Hibernate_Exception_Jpa_Jdbc - Fatal编程技术网

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

Oracle 使用JPA检索数据时出错:没有JDBC类型的方言映射:-9,oracle,hibernate,exception,jpa,jdbc,Oracle,Hibernate,Exception,Jpa,Jdbc,我正在使用以下代码检索数据 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("E

我正在使用以下代码检索数据

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;
}
我检查了一下,然后发现,这是因为我的field CLIENT_名称的类型为
nvarchar2
。因此,我对我的nvarchar进行了类型转换,并使用了以下查询

String query = "SELECT cast(CLIENT_NAME as varchar(100)) FROM USER_TABLE WHERE USER_ID='10'";

它在两种环境下工作良好。但问题是它在生产环境中不显示某些字符(例如
ű
显示为
)。我在后端使用oracle。在开发中我使用11g,在生产中使用10g。我认为这与版本有关。对于这个问题还有其他的解决办法吗?

< P>你可能想考虑像Oracle 10GG这样的方言的新版本,因为Oracle方言默认为8版本,我相信。p> 另请参见:


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

您在persistence.xml中设置了hibernate方言吗?显示我的persistence.xml
String query = "SELECT cast(CLIENT_NAME as varchar(100)) FROM USER_TABLE WHERE USER_ID='10'";