Sequence JPA

5 respostas
R

Eu tenho uma classe porém na hora de persistir ela apresenta o seguinte problema.
AVISO: Local Exception Stack:
Exception [TOPLINK-4002] (Oracle TopLink Essentials - 2.0.1 (Build b09d-fcs (12/06/2007))): oracle.toplink.essentials.exceptions.DatabaseException
Internal Exception: org.postgresql.util.PSQLException: ERRO: valor nulo na coluna “idpassaro” viola a restrição não-nula
Error Code: 0
Call: INSERT INTO passaro (observacao, fator, sexo, cor, anel, dtnascimento, portador, idgrupo, idespecie) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
bind => [, , Macho, nda, 0, 2010-07-04, Opalino e Gold oliva, 1, 2]
Query: InsertObjectQuery(persistencia.Passaro[idpassaro=null])

e a minha classe está dessa forma.

private static final long serialVersionUID = 1L;

@Id

@Column(name = idpassaro)

@SequenceGenerator(name = seq_passaro, sequenceName = seq_passaro, allocationSize=1)

@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = seq_passaro)

private BigInteger idpassaro;

@Column(name = anel)

private String anel;

@Column(name = sexo)

private String sexo;

@Column(name = portador)

private String portador;

@Column(name = dtnascimento)

@Temporal(TemporalType.DATE)

private Date dtnascimento;

@Column(name = cor)

private String cor;

@Column(name = observacao)

private String observacao;

@Column(name = fator)

private String fator;

@OneToMany(mappedBy = passaro, cascade={CascadeType.REMOVE})

private List parentescoList;

@JoinColumn(name = idgrupo, referencedColumnName = codgrupo)

@ManyToOne

private Grupo grupo;

@JoinColumn(name = idespecie, referencedColumnName = codespecie)

@ManyToOne

private Especie especie;

@OneToMany(mappedBy = femea, cascade={CascadeType.REMOVE})

private List casalList;

@OneToMany(mappedBy = macho, cascade={CascadeType.REMOVE})

private List casalList1;

5 Respostas

Tiburcio_Mancha

putz, coloca o código entre as tags code, senão dificilmente te responderão, q é trash de ler…

A sequence foi criada na base?

R

como assim tag code?
Bom a sequence está no Banco de dados(Postgresql)
Bom eu vou tentar explicar o que aconteceu.
Eu estou usando JPA para persistir os dados e para inserir esses dados eu estou usando o método persist da biblioteca Persistence-ejb3-persistence.
porém quando executo esse método ele gera um erro falando que meu id é igual a null, eu estou querendo gerar ele pela sequence(como no primeiro post) que eu tenho no postgre mas o mais estranho é que no insert que o netbeans faz ele não seta o idpassaro(como pode ser visto no meu primeiro post).
depois do erro eu fiz um teste setando o id manual e ai deu certo, então é alguma coisa que eu fiz na minha classe(como está mostrado ali em cima).

alves.Felipe

cara… no postgres eu uso assim a sequence…

@Id @Column(name="ep_cota_id") @GeneratedValue(strategy=GenerationType.IDENTITY) private Integer id;
não crio nada no banco…

R

fazendo dessa forma continua dando o mesmo problema.

R

O erro

O código

Criado 6 de outubro de 2010
Ultima resposta 8 de out. de 2010
Respostas 5
Participantes 3