I'd like to use a 128-bit `UUID` rather than `Long` for the id field on all of my Grails domains. I'd rather not have to specify all of the mapping information on every domain. Is there a simple way to achieve this in a generic/global way? I'm using Grails 2.3.x, the Hibernate 3.6.10.2 plugin, the Database Migration Plugin 1.3.8, and Oracle 11g (11.2.0.2.0).

There seem to be a number of questions related to this, but none provide complete, accurate, and up-to-date answers that actually work.

Related Questions

* [What's the best way to define custom id generation as default in Grails?](https://stackoverflow.com/questions/4259746/whats-the-best-way-to-define-custom-id-generation-as-default-in-grails)
* [grails using uuid as id and mapping to to binary column](https://stackoverflow.com/questions/5129236/grails-using-uuid-as-id-and-mapping-to-to-binary-column)
* [Configuring Grails/Hibernate/Postgres for UUID](https://stackoverflow.com/questions/8452847/configuring-grails-hibernate-postgres-for-uuid)
* [Problems mapping UUID in JPA/hibernate](https://stackoverflow.com/questions/4346898/problems-mapping-uuid-in-jpa-hibernate)
* [Custom 16 digit ID Generator in Grails Domain](https://stackoverflow.com/questions/12361815/custom-16-digit-id-generator-in-grails-domain)