【问题标题】:How to change encoding for a column in Grails Domain如何更改 Grails 域中列的编码
【发布时间】:2026-01-19 05:00:01
【问题描述】:

对于我的一个域字段,我想更改编码和排序规则。现在,每次我使用dbCreate=create 重新启动应用程序时,我都必须手动更改 MySQL DB 中的编码。

Encoding: UTF-Unicode
Collation: utf8_bin

有没有办法从域本身做到这一点?比如静态映射?

【问题讨论】:

  • 您只有一个具有不同排序规则的列或整个数据库?
  • 只有一列而不是整个数据库。我想我可以将整个数据库设为 UTF-8,但我没有那种迫切的需求
  • 我相信您最好将整个数据库设置为 Unicode——这样做更容易。

标签: hibernate grails grails-orm


【解决方案1】:

您必须在连接 URL 中定义默认 DB 编码,例如:

dataSource.url = "jdbc:mysql://localhost:3306/mydb?useUnicode=yes&characterEncoding=UTF-8"

【讨论】:

  • 我相信这只会影响服务器解释使用此连接发送的字节的方式。它不会影响 OP 需要的列的字符集