Hibernate Annotations e campo id serial do PostgreSQL
4 respostas
J
Java_Player
Olá,
Não estou conseguindo criar um campo id do tipo serial do PostgreSQl pelas anotações do Hibernate. Ele sempre cria como int mas sem auto-incremento.
@Entity@SequenceGenerator(name="usuario_id_seq",sequenceName="usuario_id_seq")publicclassUsuario{@Id@GeneratedValue(generator="usuario_id_seq",strategy=GenerationType.SEQUENCE)privatelongid;privateStringlogin;privateStringsenha;//gets e sets}
No persistence.xml do JPA eu configurei para ele recriar as tabelas:
Tente utilizar strategy = GenerationType.IDENTITY. A anotação SequenceGenerator acredito que você possa remover, o hibernate já define para você. Para que seja criado o campo id do tipo serial, tente adicionar a anotação @Column com o atributo columnDefinition = “serial”.
Não posso testar o código no momento, mas pelo que lembro vai funcionar.
A
alepenchel
leandronatalcoral:
Tente utilizar strategy = GenerationType.IDENTITY. A anotação SequenceGenerator acredito que você possa remover, o hibernate já define para você. Para que seja criado o campo id do tipo serial, tente adicionar a anotação @Column com o atributo columnDefinition = “serial”.
Não posso testar o código no momento, mas pelo que lembro vai funcionar.
Vlw cara.
A anotação @Column com o atributo columnDefinition = “serial” funcionou perfeito.
Abs.
A
alepenchel
alepenchel:
leandronatalcoral:
Tente utilizar strategy = GenerationType.IDENTITY. A anotação SequenceGenerator acredito que você possa remover, o hibernate já define para você. Para que seja criado o campo id do tipo serial, tente adicionar a anotação @Column com o atributo columnDefinition = “serial”.
Não posso testar o código no momento, mas pelo que lembro vai funcionar.
Vlw cara.
A anotação @Column com o atributo columnDefinition = “serial” funcionou perfeito.
Abs.
Corrigindo pessoal.
Desse jeito gerou meu campo no BD como serial, mas gerou várias sequences.
1 pra cada FK desse campo em outras tabelas.