gpt4 book ai didi

mysql - Grails/MySQL 字段长度约束

转载 作者:行者123 更新时间:2023-11-29 14:26:02 30 4
gpt4 key购买 nike

我正在使用 Grails 1.3.7 和 MySQL 5.1。5.5。我有一个定义字符串属性的类,如下所示:

class Topic {
String name;
User owner;
// other fields

static constraints = {
name(blank: false, maxSize: 1024, unique: ['owner'])
}
}

这对于内存数据库工作得很好,但是当我部署 WAR 文件时,我收到此错误:

12/06/07 17:09:48 ERROR hbm2ddl.SchemaUpdate: Unsuccessful: create table topic (id bigint not null auto_increment, version bigint not null, date_created datetime not null, description longtext, name longtext not null, owner_id bigint not null, primary key (id), unique (owner_id, name))
12/06/07 17:09:48 ERROR hbm2ddl.SchemaUpdate: BLOB/TEXT column 'name' used in key specification without a key length

如果我将 maxSize 规范更改为 255,则一切正常。

我阅读的文档是,MySQL 默认情况下无法计算出 key 长度来强制执行唯一性约束;为什么 grails 不为此目的传递 maxSize 值?

更新:2012 年 6 月 8 日这是我正在使用的休眠规范:

hibernate {
cache.use_second_level_cache=true
cache.use_query_cache=true
cache.provider_class='net.sf.ehcache.hibernate.EhCacheProvider'
}

我在 MySQL 5.5 中使用 com.mysql.jdbc.Driver 和 mysql-connector-java-5.1.7-bin.jar 库。

最佳答案

您使用的是哪个版本的 mysql,varchar 列的最大长度可以是 255(mysql 5.0.3 之前) - 请参阅 http://dev.mysql.com/doc/refman/5.0/en/char.html

您可以尝试将列类型更改为 text

关于mysql - Grails/MySQL 字段长度约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10941752/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com