为域类定义唯一约束时,grails 会为数据库生成一个基于属性名称的约束名称。 当使用 Postgres 作为数据库时,名称将为以下约束定义的“unique_language”。
static constraints = {
language nullable: false, unique: 'product'
}
当我现在有第二个域类时,它对同名属性也有唯一约束,grails 将再次创建一个名为“unique_language”的数据库约束。 问题是,对于 Postgres,唯一约束的名称对于数据库模式也必须是唯一的。这意味着在我们的例子中,第二个 约束未应用于数据库。
有没有办法自定义或定义唯一的索引名称?
我正在寻找是否可以增强 NamingStrategy,但我找不到可以进行更改的地方。
我们目前使用的是 grails 2.4.4
最佳答案
此问题已在 Grails 3.1.0.RC2 中修复:https://github.com/grails/grails-data-mapping/issues/623
关于postgresql - 生成重复的唯一约束名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41592092/