Olá a todos!
Estou estudando o Hibernate pelo tutorial que vem com ele. E estou com a versão 3.2.4.sp1, de 18 de maio de 2007.
Apenas gostaria compartilhar como vocês o seguinte:
Com o hibernate.cfg.xml tendo a propriedade
<property name="hbm2ddl.auto">create</property>
o Hibernate irá criar automaticamente as tabelas e etc.
Para utilizar campos do tipo auto incremento no Postgres deve usar a seguinte configuração no mapeamento da tabela (segundo o manual/tutorial que vem com o Hibernate)
<id name="id" type="long" column="person_id">
<generator class="sequence">
<param name="sequence">person_id_sequence</param>
</generator>
</id>
Como isso o Hibernate cria a "sequence" person_id_sequence no banco e cria o campo "person_id" como bigint
Eu viz uns testes e vi que para criar o campo person_id como SERIAL, deve mapear a tabela como se fosse para MySQL
<id name="id" type="long" column="person_id" unsaved-value="0">
<generator class="identity"/>
</id>
Então ele irá associar automaticamente o nextval('person_person_id_seq') ao campo "person_id".
Obs.: O Hibernate é show!!!