O incremento é definitivamente ruim se você tiver mais de um processo gravando na mesma tabela - você provavelmente terá colisões.
Como estamos falando do MySQL, a coisa mais fácil de usar seria
identity
. No seu mapeamento do Hibernate:<generator class="identity"/>
No seu script MySQL:
CREATE TABLE IF NOT EXISTS `my_table` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`data1` int(11) NOT NULL,
`data2` int(11) NOT NULL,
`timestamp` datetime default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
Para alterar uma tabela existente:
ALTER TABLE `my_table`
CHANGE COLUMN `id` `id` int(11) NOT NULL AUTO_INCREMENT=$NEW_VALUE$;
onde $NEW_VALUE$ deve ser substituído pelo próximo id disponível para que a sequência não seja redefinida para 1.