[RESOLVIDO] JPA c/ Hibernate - 2 tabs, N aluno p/ 1 professor, sem erros + n cria corretamente  XML
Índice dos Fóruns » Persistência: Hibernate, JPA, JDBC e outros
Autor Mensagem
andredecotia
JWizard
[Avatar]

Membro desde: 19/10/2009 14:37:32
Mensagens: 2267
Localização: São Paulo
Offline

This message was edited 3 times. Last update was at 15/05/2011 21:14:10


--
André AS


Analista Programador Java Web freelancer / home office
Linkedin: http://www.linkedin.com/profile/view?id=41470291&trk=tab_pro

[Email] [MSN] [ICQ]
andredecotia
JWizard
[Avatar]

Membro desde: 19/10/2009 14:37:32
Mensagens: 2267
Localização: São Paulo
Offline

Ele gera três tabelas mas não funcionam adequadamente. Vide anexo:
[Thumb - tabelas criadas.png]
 Nome do arquivo tabelas criadas.png [Disk] Download
 Descrição
 Tamanho 4 Kbytes
 Baixado:  23 vez(es)


--
André AS


Analista Programador Java Web freelancer / home office
Linkedin: http://www.linkedin.com/profile/view?id=41470291&trk=tab_pro

[Email] [MSN] [ICQ]
andredecotia
JWizard
[Avatar]

Membro desde: 19/10/2009 14:37:32
Mensagens: 2267
Localização: São Paulo
Offline

TENTEI TAMBÉM DA SEGUINTE MANEIRA:





Daí ele criou duas tabelas, porém o relacionamento não funcionando corretamente.

This message was edited 1 time. Last update was at 15/05/2011 10:39:33


--
André AS


Analista Programador Java Web freelancer / home office
Linkedin: http://www.linkedin.com/profile/view?id=41470291&trk=tab_pro

[Email] [MSN] [ICQ]
andredecotia
JWizard
[Avatar]

Membro desde: 19/10/2009 14:37:32
Mensagens: 2267
Localização: São Paulo
Offline

O QUE EQUIVALENTE NO SQL É:





--
André AS


Analista Programador Java Web freelancer / home office
Linkedin: http://www.linkedin.com/profile/view?id=41470291&trk=tab_pro

[Email] [MSN] [ICQ]
javablue
JavaGuru

Membro desde: 16/04/2011 23:42:49
Mensagens: 223
Offline

Dá primeira vez, ele criou as 2 tabelas, porque você fez o relacionamento dos dois lados. Tanto no lado Pai, quanto no lado Aluno. Quando você coloca assim, ele entende que são relacionamentos independentes (não tem relação um com o outro), ai nesse caso, você precisa usar dentro da anotation a propriedade mappedBy, dessa forma, o hibernate entende que apesar do relacionamento estar dos dois lados, é o mesmo relacionamento e não cria a tabela auxiliar e sim a chave estrangeira. Não tô em casa, se não te ajudava com algum exemplo...

Mas da segunda maneira, deveria funcionar corretamente. Mesmo deletando o banco e mandando o hibernate criar, ele continua criando uma tabela auxiliar?

Quando é preciso hora extra, é porque algo saiu errado. Quando é preciso várias horas extras, é porque se está trabalhando errado.
andredecotia
JWizard
[Avatar]

Membro desde: 19/10/2009 14:37:32
Mensagens: 2267
Localização: São Paulo
Offline

Olá, valeu pela ajuda...

Pois é, pensei o mesmo que dá segunda maneira, foi a primeira maneira que tentei mas não funcionou, recrei a base de dados com o Hibernate JPA e nada...

Vou testar usando o mappedBy...

--
André AS


Analista Programador Java Web freelancer / home office
Linkedin: http://www.linkedin.com/profile/view?id=41470291&trk=tab_pro

[Email] [MSN] [ICQ]
andredecotia
JWizard
[Avatar]

Membro desde: 19/10/2009 14:37:32
Mensagens: 2267
Localização: São Paulo
Offline

REALMENTE... ISSO DEVERIA FUNCIONAR, EU ACHO:


--
André AS


Analista Programador Java Web freelancer / home office
Linkedin: http://www.linkedin.com/profile/view?id=41470291&trk=tab_pro

[Email] [MSN] [ICQ]
andredecotia
JWizard
[Avatar]

Membro desde: 19/10/2009 14:37:32
Mensagens: 2267
Localização: São Paulo
Offline

FIZ PEQUENAS MUDANÇAS, MESMO ASSIM CONTINUA NÃO FUNCIONANDO O RELACIONAMENTO, NAO É CRIADA A CHAVE ESTRANGEIRA CORRETAMENTE:


--
André AS


Analista Programador Java Web freelancer / home office
Linkedin: http://www.linkedin.com/profile/view?id=41470291&trk=tab_pro

[Email] [MSN] [ICQ]
andredecotia
JWizard
[Avatar]

Membro desde: 19/10/2009 14:37:32
Mensagens: 2267
Localização: São Paulo
Offline

MAIS TENTATIVAS:


--
André AS


Analista Programador Java Web freelancer / home office
Linkedin: http://www.linkedin.com/profile/view?id=41470291&trk=tab_pro

[Email] [MSN] [ICQ]
javablue
JavaGuru

Membro desde: 16/04/2011 23:42:49
Mensagens: 223
Offline

Vou te mostrar um exemplo que tenho aqui.

Tenho uma entidade Conta e uma Movimentação. Cada Movimentação é referente a uma Conta (chave estrangeira). Mapeie da seguinte maneira:



E para poder ter uma lista de movimentações por conta, está da seguinte maneira:



Ele cria como chave estrangeira. No mappedBy você coloca o lado fraco da relação. Movimentação é o lado forte, já que ela tem uma relação com Conta, mas Conta não tem com ela (conceito de chave estrangeira)

Vê se te ajuda.

Observação, dá um drop database, e faz um modelo simples só para testar isso, se funcionar, depois coloca no seu projeto

Quando é preciso hora extra, é porque algo saiu errado. Quando é preciso várias horas extras, é porque se está trabalhando errado.
andredecotia
JWizard
[Avatar]

Membro desde: 19/10/2009 14:37:32
Mensagens: 2267
Localização: São Paulo
Offline

Puxa que estranho, continua não funcionando... Fiz do jeitinho que você falou...

--
André AS


Analista Programador Java Web freelancer / home office
Linkedin: http://www.linkedin.com/profile/view?id=41470291&trk=tab_pro

[Email] [MSN] [ICQ]
andredecotia
JWizard
[Avatar]

Membro desde: 19/10/2009 14:37:32
Mensagens: 2267
Localização: São Paulo
Offline




--
André AS


Analista Programador Java Web freelancer / home office
Linkedin: http://www.linkedin.com/profile/view?id=41470291&trk=tab_pro

[Email] [MSN] [ICQ]
javablue
JavaGuru

Membro desde: 16/04/2011 23:42:49
Mensagens: 223
Offline

Posta ai teu persistence.xml


Se a propriedade hibernate.hbm2ddl.auto tiver como update, ele cria a chave primária, mas não apaga a tabela auxiliar. Já tentou dropar o banco e criar novamente?

Você não está usando nenhum mapeamento em xml também né? Apenas por anottations correto?

Quando é preciso hora extra, é porque algo saiu errado. Quando é preciso várias horas extras, é porque se está trabalhando errado.
andredecotia
JWizard
[Avatar]

Membro desde: 19/10/2009 14:37:32
Mensagens: 2267
Localização: São Paulo
Offline

javablue wrote:Posta ai teu persistence.xml


Se a propriedade hibernate.hbm2ddl.auto tiver como update, ele cria a chave primária, mas não apaga a tabela auxiliar. Já tentou dropar o banco e criar novamente?

Você não está usando nenhum mapeamento em xml também né? Apenas por anottations correto?


Estava create, mas dropei as tabelas e as criei usando update e não funcionou. Não há tabela auxiliar. Já dropei a base de dados e nada. Estou
usando puramente anotação. Vide meu persistence.xml:


--
André AS


Analista Programador Java Web freelancer / home office
Linkedin: http://www.linkedin.com/profile/view?id=41470291&trk=tab_pro

[Email] [MSN] [ICQ]
andredecotia
JWizard
[Avatar]

Membro desde: 19/10/2009 14:37:32
Mensagens: 2267
Localização: São Paulo
Offline

Puxa, acho que agora está funcionando, fiz uma mudança no persistence.xml para:



Testando...

--
André AS


Analista Programador Java Web freelancer / home office
Linkedin: http://www.linkedin.com/profile/view?id=41470291&trk=tab_pro

[Email] [MSN] [ICQ]
 
Índice dos Fóruns » Persistência: Hibernate, JPA, JDBC e outros
Ir para:   
Powered by JForum 2.1.8 © JForum Team