PostgreSQL9 Data Type Serial e Hibernate?

Salve galera…

Eh o seguinte, eu to usando PostgreSQL9 no meu projeto, e percebi que para os tipos SERIAL e BIGSerial autoincrement, o hibernate não adiciona a sequencia, então estou dando uma pesquisada e realmente ele não suporta esses tipos de dados, é necessário fazer alterações no dialeto.

Encontrei esse post:- http://javafree.uol.com.br/artigo/865772/Hibernate-PostgreSQL-e-ids-com-SERIAL.html .Seguindo a linha de raciocinio do autor do post, onde ele diz:

Eu tbm quero extender o Hibernate para trabalhar com tipos SERIAIS, porém na classe “SerialIdentifierGeneratorTest”, o test case que ele fez, tenho uns problemas de imports, ou seja, não está funcionando pra mim.

Como resolver isso ??

obrigado

pq vc não utiliza:

@SequenceGenerator(name="seq",sequenceName="seq",allocationSize=1,initialValue=1)

e no id

    @Id
    @GeneratedValue(generator="seq",strategy=GenerationType.SEQUENCE)
    private Long id;

utilizando o nome do sequence generator do postgres (que gera para os tipos serial, bigseria, etc), o proprio jpa vai utilizar da sequencia

Mas desta forma acredito ter problema para portar o banco, que foi exatamente o que o autor do post q coloquei o link flw.
Acho q extendendo como ele sugere seria uma maneira mais trabalhosa porém mais fácil futuramente, não ?

obrigado pela atenção.

encontrei um outro post aqui no fórum: http://www.guj.com.br/java/39281-hibernate--annotation--postgree--sequence

A solução.

<id column="id" name="identificador"> //1  
  <generator class="sequence"> //2  
    <param name="sequence">seq_modulo</param> //3  
  </generator>  
</id>  

Mas assim, eu teria que saber o nome da sequencia q o banco gerou, o que seria trabalhoso d++…Acho que da maneira como postei da primeira vez, extendendo o dialeto, seria o mais viável.

Alguma sugestão ?

obrigado

Opa Galera…encontrei uma maneira provisória de fazer,

vejam:

 <id name="id" type="long">
      <column name="id"/>
      <generator class="increment"/> //fiz alteração aqui.
    </id>

Funcionou gerou a sequencia direitinho…Mas como disse é provisório isso, pois eu adicionei isso no Perfil.hbm.xml que mapeia minha classe Perfil. O problema é que uso Engenharia Reversa do Hibernate e sempre quando faço alterações no BD, eu refaço todas as classes e os mapeamentos, com isso eu teria sempre q ficar alterando os Arquivos.hbm.xml e são mais de 1200 tabelas ja prontas no banco, seria muiiito trabalhoso fazer isso para as 1200 classes geradas…
O que preciso é fazer isso de uma vez por todas, ou seja, ter uma solução definitiva onde sempre que eu adicione algo ao banco ja gere automaticamente a sequencia.

Alguma dica ???

obrigado.

quando tu mapeia as classes , vc tem que gerar o sequence_id e o banco vai gerar com o nome que vc criou

Mas eu uso “Engenharia Reversa”, como disse antes…Tenho mais de 1200 tabelas no BD.

t+