hibernate查询SqlServer和oracle的char字段只显示第一个

在Hibernate中,常量在数据库中被认为是CHAR类型的,Hibernate取值时将其保存为Character类型,而Character只能保存一个字符,所以造成返回值中只存在一个字符。Hibernate官方已存在此bug,却从未修复。

这建议的解决方案:
重写一个SQLServerDialect ,注册CHAR类型的对应方式,代码如下:

import java.sql.Types;
import org.hibernate.Hibernate;

public class MySQLServerDialect extends org.hibernate.dialect.SQLServerDialect  
{  
    public MySQLServerDialect()  
    {  
        super();  
        //very important, mapping char(n) to String  
        registerHibernateType(Types.CHAR, Hibernate.STRING.getName());  
    }  
}  

你可能感兴趣的:(hibernate查询SqlServer和oracle的char字段只显示第一个)