Postgresql Campo Serial com Hibernate

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!!!

cleriston,

E a dúvida? Tem alguma, ou esse post é de “caráter informativo”?

é de carater informativo mesmo…
Fiquei tão feliz qdo descobri isso, e queria compartilhar com que tá aprendendo tb.

Abraços

Na versão mais recente do Hibernate você faz tudo isso via anotação.

http://www.guj.com.br/posts/list/39281.java

[quote=cleriston] 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!!![/quote]

Opa, sei que o tópico é um pouco antigo, mas me ajudou bastante recentemente, mas faltou um detalhe ai que me bati um pouco para fazer a dica do camarada acima funcionar de fato:
-Mudar o dialeto para postgresql

Espero que ninguém se chateie por trazer um topico tão velho a tona :oops: