2013-02-21 25 views
0

我正在使用NCHAR,NVARCHAR和NATIONAL VARCHAR。是否有任何hibernate方言支持Mysql UTF-8國家字符類型?

http://dev.mysql.com/doc/refman/5.0/en/charset-national.html

我沒有找到上述數據類型MySqlDialect,MySql5INNODBDialect支持。

public MySQLDialect() { 
    super(); 
    registerColumnType(Types.BIT, "bit"); 
    registerColumnType(Types.BIGINT, "bigint"); 
    registerColumnType(Types.SMALLINT, "smallint"); 
    registerColumnType(Types.TINYINT, "tinyint"); 
    registerColumnType(Types.INTEGER, "integer"); 
    registerColumnType(Types.CHAR, "char(1)"); 
    registerColumnType(Types.FLOAT, "float"); 
    registerColumnType(Types.DOUBLE, "double precision"); 
    registerColumnType(Types.DATE, "date"); 
    registerColumnType(Types.TIME, "time"); 
    registerColumnType(Types.TIMESTAMP, "datetime"); 
    registerColumnType(Types.VARBINARY, "longblob"); 
    registerColumnType(Types.VARBINARY, 16777215, "mediumblob"); 
    registerColumnType(Types.VARBINARY, 65535, "blob"); 
    registerColumnType(Types.VARBINARY, 255, "tinyblob"); 
    registerColumnType(Types.LONGVARBINARY, "longblob"); 
    registerColumnType(Types.LONGVARBINARY, 16777215, "mediumblob"); 
    registerColumnType(Types.NUMERIC, "decimal($p,$s)"); 
    registerColumnType(Types.BLOB, "longblob"); 
//  registerColumnType(Types.BLOB, 16777215, "mediumblob"); 
//  registerColumnType(Types.BLOB, 65535, "blob"); 
    registerColumnType(Types.CLOB, "longtext"); 
//  registerColumnType(Types.CLOB, 16777215, "mediumtext"); 
//  registerColumnType(Types.CLOB, 65535, "text"); 
    ........ 
} 

是否有任何hibernate方言來支持Mysql UTF-8國家字符類型?

回答

1

沒有這樣的類型在MySQL中,它僅僅是一個短手將CHARACTER SET 'utf8'

例如寫作NCHAR(10)與編寫CHAR(10) CHARACTER SET 'utf8'相同,它不是真正的類型。

您可以輕鬆地只配置連接和表使用utf8開始用,然後它不會有所作爲。

相關問題