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'";