解决hibernate读数据库char只显示2个字节问题

这几天项目发现 select  '查看' id  from  dual  结果页面id 只显示’查‘字

原因是java对char只显示2个字节

解决办法

package com.common.dialect;


import java.sql.Types;


import org.hibernate.Hibernate;
import org.hibernate.dialect.OracleDialect;


/**
 * 所有oracle特殊类型在这个类进行注册
 * @author Administrator
 *
 */
public class SrpOracleDialect extends OracleDialect {
public SrpOracleDialect(){
       super();
       
       //防止读取char类型只读取一个字符
       registerHibernateType(Types.CHAR, Hibernate.STRING.getName());
       
       
       //hibernate新增一个long类型处理     
       registerHibernateType(Types.LONGVARCHAR, Hibernate.LONG.getName());
  }
}


然后hibernate配置文件hibernate.cfg.xml

 <property name="dialect">com.common.dialect.SrpOracleDialect</property>


一种办法就是把原生的sql写成这样: SELECT   cast('查看' as VARCHAR2(8)) ID FROM dual 也可以

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值