我正在使用 Grails 插件 - Amazon S3 插件 - 并且插件提供的域对象未指定 Id 生成器。我正在使用 Postgresql 并要求 id 生成器是身份。
我可以在我的插件目录中复制插件并弄乱提供的域对象,但这听起来不像是一个干净的方法。我可以在运行时添加正确的 id 生成吗?或者也许有更好的方法。
我正在使用 Grails 插件 - Amazon S3 插件 - 并且插件提供的域对象未指定 Id 生成器。我正在使用 Postgresql 并要求 id 生成器是身份。
我可以在我的插件目录中复制插件并弄乱提供的域对象,但这听起来不像是一个干净的方法。我可以在运行时添加正确的 id 生成吗?或者也许有更好的方法。
如果您使用的是 1.2,您可以为所有 GORM 类提供默认映射,包括生成器。
grails.gorm.default.mapping = {
id generator:'sequence'
}
在1.2 发行说明中查看更多信息。
我认为您可以只将 S3Asset.groovy 复制到 src/groovy/ 中。从内存中,您的类应该覆盖插件提供的类。我已经使用这种技术来调整几个插件,直到错误被修复。但我还没有尝试过仅使用 *GrailsPlugin.groovy 文件的域类。
此外,Jean 的上述建议是一个很好的建议!
干杯
李