【发布时间】:2016-01-29 14:36:50
【问题描述】:
我是 Grails 的新手,不太熟悉 GORM 如何将列映射到 jdbc 实现。 基本上我有以下错误:
org.h2.jdbc.JdbcSQLException
消息:
值太长列 “关键词BINARY(255)”: “X'aced0005737200116a6176612e7574696c2e486173684d61700507dac1c31660d103000246000a6c6f6164466163746f724900097468726573686f6c647870 ...(1871)”; SQL语句:插入用户(id、版本、email、face_url、keywords、name、phone、tags、terminals、url、weibo_id、weibo_name)值(null、?、?、?、?、?、?、?、? , ?, ?, ?) [22001-176]
我尝试了几种方法来改变这个KEYWORD属性的保存方式,比如
static constraints = {
...
keywords(type:'serializable')
}
我也尝试过“maxSize:10000”、“type:'text'”以及这两者的组合。但没有一个成功,错误是完全一样的。 "keyword" 属性只是 key=String, value=Double 的 HashMap。
一般来说,我只是不确定让 Grails(Hibernate) 存储哈希图的最佳做法是什么。我相信在某个地方必须有一个简单的设置,而不是自己为 hibernate 或 grails 实现用户定义的持久性方式。而且我想知道为什么每次它似乎都被转换为二进制(我确实重新运行了应用程序以让数据库删除并创建所有表)。
更多细节,我的控制器只是脚手架。 Grails 版本是 2.4.4。开发环境使用H2db。
感谢任何建议!
【问题讨论】: