Devo confessar, detesto chaves primárias do tipo auto incrementais. Sempre preferi utilizar UUID: podem ocupar mais espaço em armazenamento em disco, mas são ideais quando lidamos com aplicações paralelizadas ou mesmo quando queremos ter um controle maior sobre o valor que devemos armazenar nestes campos.
Ao iniciar meu contato com Grails, fiquei um pouco decepcionado ao me deparar com a utilização padrão de campos do tipo auto incrementais, porém este problema pode ser resolvido de uma maneira extremamente simples: basta apenas customizar o mapeamento objeto relacional da classe, tal como faço no código abaixo:
class AmandoUUID { String id // Defina o campo chave como String. // Repare no mapeamento: basta definir o generator uuid! static mapping = { id generator:'uuid' } }
Simples, não acha?
Pingback: Grails: acessando bases de dados legadas. — /dev/Kico