Есть ли какой-нибудь спящий диалект для поддержки Mysql UTF-8 National Character Type?
Я использую NCHAR, NVARCHAR и NATIONAL VARCHAR.
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" );
........
}
Есть ли какой-нибудь спящий диалект для поддержки Mysql UTF-8 National Character Type?
1 ответ
Решение
В MySQL такого типа нет, это просто сокращение для применения CHARACTER SET 'utf8'
,
Например, написание NCHAR(10)
так же, как писать CHAR(10) CHARACTER SET 'utf8'
Это не настоящий тип.
Вы можете легко настроить ваше соединение и таблицы для использования utf8
для начала, а затем это не имеет значения.