当前位置: 代码迷 >> SQL >> JPA执行原生SQL截断Char类型有关问题
  详细解决方案

JPA执行原生SQL截断Char类型有关问题

热度:94   发布时间:2016-05-05 11:25:15.0
JPA执行原生SQL截断Char类型问题

????????????????在JPA的API中执行原生SQL:EntityManager.createNativeQuery(String sqlString);?传入参数是原生SQL语句,返回SQL对象。

????????????????如果oracle数据库中某个字段定义的是char类型比方说是char[2],当使用EntityManager.createNativeQuery(String sql);?去查询这些值的时候,发现返回的结果集中只要数据库中是char类型的,都只返回一个字符。

???????????????? 原因:hibernate将char 类型的字段转化成了character。? 因此造成查询结果不对。
???????????????? 解决办法:

??????????????? 【1】只需要在SQL语句中把数据库中是Char类型字段,加个trim函数处理就可以了。

??????????????? 【2】用EntityManager.createNativeQuery(String sqlString, Class resultClass)?方法替换成以下方法即可:EntityManager.createNativeQuery(String sqlString);?其中Class resultClass是实体类的全名称,包括所在的包名称。??????????????

  相关解决方案