这几天项目发现 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 也可以