Erro com JPA  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
gilsonpolito
Java Ninja

Membro desde: 21/12/2006 19:15:48
Mensagens: 256
Offline

Boa Tarde Pessoal....
Estou estudando JPA e não estou conseguindo entender o erro em meu programa.
Procurei muito a solução e até o momento não consegui fazer funcionar. Espero que alguém possa me ajudar por aqui.
Estou usando Mysql como bd.
Segue abaixo a criação das tabelas no banco.

Tabela Cadastro


Tabela Pessoa


Minhas Entidades geradas pelo NetBeans:
Cadastro


Pessoa


Meu arquivo de configuração:


E finalmente meu programa:


O erro que ocorre é este:


Por favor, já estou ficando louco com isso, e o pior é que deve ser algo muito simples. Espero que vocês possam me dar uma luz.

Obrigado
edilson_x
JavaChild
[Avatar]

Membro desde: 22/05/2007 16:11:21
Mensagens: 139
Offline

Na classe Pessoa esta faltando o

no atributo idCadastro



da uma olhada no erro :
Internal Exception: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column 'IdCadastro' cannot be null


esta tentando adicionar null em um campo que esta marcado para nãp ser null

This message was edited 1 time. Last update was at 12/04/2009 11:57:12


"NON DVCOR, DVCO"
Doe Sangue!

edilsonalm@gmail.com.br
[Email]
gilsonpolito
Java Ninja

Membro desde: 21/12/2006 19:15:48
Mensagens: 256
Offline

Boa tarde edilson_x,

Testei sua sugestão e mesmo assim não deu certo.

Este campo deve ser o mesmo gerado pela classe Cadastro, ou seja, um relacionamento do tipo onetoone. Na tabela pessoa ele não é identity e sim fk da tabela cadastro.

Tem alguma outra sugestão?

Obrigado pela resposta

This message was edited 1 time. Last update was at 12/04/2009 12:03:45

rdgms
Virtual Machine Man
[Avatar]

Membro desde: 21/12/2006 22:08:57
Mensagens: 628
Localização: São Paulo
Offline

Tenta mudar para o GenerationType para Auto...

GenerationType.AUTO

PDF, JPG, GIF, DOC e DOCX
JAVA! SCALA!


gilsonpolito
Java Ninja

Membro desde: 21/12/2006 19:15:48
Mensagens: 256
Offline

Boa tarde rdgms
Já testei também AUTO e nada.

Tem mais alguma idéia?
Obrigado pela resposta
rdgms
Virtual Machine Man
[Avatar]

Membro desde: 21/12/2006 22:08:57
Mensagens: 628
Localização: São Paulo
Offline

Como que esta o campo IdCadastro no banco de dados???

PDF, JPG, GIF, DOC e DOCX
JAVA! SCALA!


gilsonpolito
Java Ninja

Membro desde: 21/12/2006 19:15:48
Mensagens: 256
Offline

Na tabela cadastro ele é pk e identity e na tabela pessoa é pk e possui relacionamento com a tabela cadastro

This message was edited 1 time. Last update was at 12/04/2009 18:10:27

gilsonpolito
Java Ninja

Membro desde: 21/12/2006 19:15:48
Mensagens: 256
Offline

Ninguém mais pode dar uma dica? Eu quero que ao gerar o campo identity na tabela de cadastro, o mesmo também seja atribuido na tabela Pessoa.

Obrigado
gilsonpolito
Java Ninja

Membro desde: 21/12/2006 19:15:48
Mensagens: 256
Offline

Pesquisando um pouco sobre JPA, me parece que não está sendo muito bem aceito no mercado. Vocês concordam com isso?
Weslley
JavaBaby
[Avatar]

Membro desde: 27/07/2007 09:52:01
Mensagens: 93
Offline


Faz o seguinte... em vez de AUTO ou IDENTITY, use SEQUENCE...

o meu funcionou...

Weslley Matos
Analista de Sistemas Java
renatogrosz
Entusiasta Java

Membro desde: 22/04/2009 08:22:41
Mensagens: 18
Offline

alguem sabe como fazer o handle de MySQLIntegrityConstraintViolationException?
Ou melhor, tratar a internal exception da RollbackException?
abelgomes
Virtual Machine Man
[Avatar]

Membro desde: 12/06/2008 17:08:23
Mensagens: 706
Localização: Manaus-AM
Offline

me diga uma coisa, essas classes foram criadas na mão ou foi alguma ferramenta que gerou pra vc?

...the only easy day was yesterday...
[Email] [MSN]
renatogrosz
Entusiasta Java

Membro desde: 22/04/2009 08:22:41
Mensagens: 18
Offline

Descobri como fazer:

public void create(EntityUsuario u) {
try{
em.getTransaction().begin();
em.persist(u);
em.getTransaction().commit();
}catch(RollbackException rollback_error){
Throwable t;
t=rollback_error.getCause(); /// t=oracle.toplink.essentials.exceptions.DatabaseException
if(t.getCause() instanceof MySQLIntegrityConstraintViolationException){
System.out.println("Tratar erro aqui");
}
}
}

abelgomes
Virtual Machine Man
[Avatar]

Membro desde: 12/06/2008 17:08:23
Mensagens: 706
Localização: Manaus-AM
Offline

muito bem, agora coloque no topico como resolvido.
Edite o seu primeiro post e coloca ao final o ou começo do titulo do topico [RESOLVIDO]..

...the only easy day was yesterday...
[Email] [MSN]
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team