views:

187

answers:

2

I am using a plugin for Grails - the Amazon S3 plugin - and the domain object provided by the plugin doesn't specify the Id Generator. I am using Postgresql and require the id genrator to be identity.

I could copy the plugin in my plugins directory and mess with the domain object provided but that doesn't sound like a clean approach.Could I add the correct id generation at runtime? Or maybe there is a better way.

+3  A: 

If you are using 1.2, you could provide a default mapping for all your GORM classes, including generator.

grails.gorm.default.mapping = {
   id generator:'sequence'
}

See more in 1.2 release notes.

Jean Barmash
I am not running 1.2 but that's a good reason to upgrade. Thanks for the answer that's really clean.
Julien Gagnet
+1  A: 

I think you could copy just the S3Asset.groovy into src/groovy/. From memory, your class should override the one provided by the plugin. I've used this technique to tweak a couple of plugins until bugs were fixed. But I haven't tried it with domain classes only *GrailsPlugin.groovy files.

Also, Jean's suggestion above is a good one!

cheers

Lee

leebutts