我知道您可以通过grails.gorm.default.constraints配置属性通过以下方式设置默认约束:
grails.gorm.default.constraints = {
'*'(nullable:true)
}但有没有办法按类型来设置呢?我希望将我的所有字符串默认为maxSize:2000 (主要是强制默认的db映射不是varchar(255))
发布于 2013-10-17 17:04:21
我不认为在Config.groovy中有任何方法可以轻松地做到这一点。不过,您可以为hibernate创建一个自定义方言,而不需要太多的麻烦。例如(使用Postgres方言):
package mypackage;
import org.hibernate.dialect.PostgreSQLDialect;
import java.sql.Types;
public MyPostgresDialect extends PostgresSQLDialect {
public MyPostgresDialect() {
super();
registerColumnType(Types.VARCHAR, "text");
}
}然后更新DataSource.groovy以使用新方言:
datasource {
...
dialect = mypackage.MyPostgresDialect
}发布于 2013-10-18 16:32:21
只是为了提供我从同事那里得到的一个额外的答案--在这种情况下是不适用的,但可能会对其他人有所帮助.
如果可以在属性中遵循命名约定,则可以执行以下操作:
'*_s': (maxSize:2000)我个人不喜欢交叉捆绑道具名称和数据类型--但我想把它作为一种方法(尽管我更喜欢ataylor的方言回答……)
https://stackoverflow.com/questions/19432543
复制相似问题