在hibernate項目中提供jdbc接口時(shí),查詢(xún)數據庫char字段的數據只能得到第一個(gè)字符的問(wèn)題,解決方案代碼如下:
package com.newer.common;
import java.sql.Types;
import org.hibernate.Hibernate;
import org.hibernate.dialect.MySQLDialect;
/**
* 此類(lèi)用于解決數據庫 char字段問(wèn)題(mysql) <br/>
* 因使用hibernate內置提供的sql語(yǔ)句查詢(xún)接口會(huì )給字符串當char處理,
* 所以編寫(xiě)此類(lèi)覆蓋內置的MMySQLDialect <br/>
* 給MYSQL的char字段修飾為String
* @author xiaoyin
* 2012-2-26下午03:53:55
*/
public class MMySQLDialect extends MySQLDialect{
public MMySQLDialect() {
super();
registerHibernateType(Types.DECIMAL, Hibernate.BIG_INTEGER.getName());
registerHibernateType(Types.CHAR, Hibernate.STRING.getName());
registerHibernateType(Types.NVARCHAR, Hibernate.STRING.getName());
registerHibernateType(Types.LONGNVARCHAR, Hibernate.STRING.getName());
}
}
總結:
1. 當前是解決mysql的問(wèn)題,對應其它數據庫只需實(shí)現相應的接口即可。
2. 配置<prop key="hibernate.dialect">${dialect}</prop>需引用上面的類(lèi)。
友情學(xué)習:上述如有不對或疑惑之處請您指出,郵箱1870234187@qq.com
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請
點(diǎn)擊舉報。