mas da o seguinte erro:
org.postgresql.util.PSQLException: ERROR: null value in column “cd_cliente” violates not-null constraintError Code: 0
Call:INSERT INTO locadora.CLIENTE (DS_NOME, DS_ENDERECO) VALUES (?, ?)
bind => [André, Bahia]
parece que a JPA nao pega a sequence e joga no campo codigo, ai da erro not null.
Qual a maneira de mapear pra usar o ID como SEQUENCE, especificando o nome da SEQUENCE??
tem que colocar uma outra anotação junto para criar a sequence, não lembro agora qual é, da uma olhada no javadoc que t acha, caso contrario amanha do uma olhada nisto
Blz, a noite vou testar la em casa e posto aqui, maaass eu tinha tentado fazer com essa annotation, mas nao tinha colocado esse allocationsize, sera que foi isso?
Exception in thread "main" javax.persistence.RollbackException: Exception [TOPLINK-4002] (Oracle TopLink Essentials - 2006.8 (Build 060830)): oracle.toplink.essentials.exceptions.DatabaseException
Internal Exception: org.postgresql.util.PSQLException: ERROR: null value in column "codigo" violates not-null constraintError Code: 0
Call:INSERT INTO fred.CLIENTE (NOME) VALUES (?)
bind => [fred]
tentei inserir um registro mas nao vai, da erro de not null, a JPA nao deveria fazer o select da sequence e preecher o campo “codigo”, igual o HIbernate??
Também estou tendo problema com isto. Uso Oracle 10g XE, com Sequence.
Tentei de diversas maneiras usar a sequence como gerador do ID, mas não tá rolando. Estranhamento é jogado um valor “0” no meu ID (Integer) e dá o seguinte erro:
javax.persistence.PersistenceException: org.hibernate.PersistentObjectException: detached entity passed to persist: minha.Class
Caraca, mesmo usando HSQLDB, deixando o próprio Hibernate (com JPA) gerar o SCHEMA e configurando os IDs como @GeneratedValue(strategy=GenerationType.AUTO) ou mesmo como @GeneratedValue(strategy=GenerationType.SEQUENCE), nem assim funcionou e tive o mesmo problema.
Putz… acabei de descobrir que o problema não era o JPA/Hibernate.
Como eu uso Apache Commons Bean Utils para jogar os valores da tela para o objeto de dados, quando é null ele joga “0” no campo Integer, que no caso é o ID. Que merda! Não deveria jogar “0”.
no banco minha sequence se chama “seq_tbl_equipamento”. Porém, quando tento inserir um registro é gerada uma exceçção:
org.postgresql.util.PSQLException: ERRO: relação “tbl_equipamento_int_idaequipamento_seq” não existe
Quando altero o nome da sequence no banco para o mesmo nome da sequence dessa exceção (tbl_equipamento_int_idaequipamento_seq), aí sim eu consigo inserir meu objeto. Mas eu queria saber o porquê dessa exceção, o porquê de não aceitar a sequence do banco e exigir a que é gerada na exceção.
Cara, vc pode usar o copyproperty, e para resolver esse problema de atribuir 0 no campo, vc pode registrar uns conversores para o seu tipo. Assim, vc faz o converso para o Tipo Integer que ao receber string vazia, “”, ele não coloque 0 e sim null.
Estava com o mesmo problema, consegui solucionar incluido a anotação no cabeçalho da classe: @SequenceGenerator(name=“SQ_ENTIDADE”,sequenceName=“SQ_ENTIDADE”)