[RESOLVIDO] Relacionamento Hibernate + Vraptor  XML
Índice dos Fóruns » Frameworks e Bibliotecas brasileiros
Autor Mensagem
david.cs20
JavaGuru
[Avatar]

Membro desde: 06/02/2008 16:49:13
Mensagens: 238
Offline

Tenho um grupo de usuário a qual tem um supervisor criei um relacionamento @ManyToOne porem quando vou realizar o inserte no banco ele não insere o id do usuário e assim não faz o meu relacionamento
Segue abaixo a classe usuário:

This message was edited 1 time. Last update was at 16/01/2012 16:04:31

[Email] [MSN]
Rafael Guerreiro
JavaEvangelist

Membro desde: 26/10/2010 07:28:13
Mensagens: 482
Localização: São Paulo/SP
Online

David, boa tarde!

Você poderia postar os códigos do controller e do DAO?

Eu estou achando que o problema é que você não está setando o atributo supervisor...





david.cs20
JavaGuru
[Avatar]

Membro desde: 06/02/2008 16:49:13
Mensagens: 238
Offline

GrupoDAO


GrupoController


[Email] [MSN]
Rafael Guerreiro
JavaEvangelist

Membro desde: 26/10/2010 07:28:13
Mensagens: 482
Localização: São Paulo/SP
Online

Então, vamos mexer em algumas coisinhas.
O VRaptor é poderosíssimo e tem alguns recursos que você pode utilizar, tais como a injeção de dependências.

Por exemplo: Criar um DAO genérico e não se preocupar mais com código repetido, mas sim com código específico:


Dessa forma, seu GrupoDAO fica um pouco melhor:


Mas para isso, você vai precisar fazer um ComponentFactory de Session e de SessionFactory:





Rafael Guerreiro
JavaEvangelist

Membro desde: 26/10/2010 07:28:13
Mensagens: 482
Localização: São Paulo/SP
Online

Agora, no seu controller, você não precisa mais se preocupar em instanciar o costrutor:

Agora quanto ao problema em específico, você vai precisar receber o id do usuário e setar o supervisor, no seu controller...


E repara que você pode fazer o mesmo com o UsuarioDAO:





david.cs20
JavaGuru
[Avatar]

Membro desde: 06/02/2008 16:49:13
Mensagens: 238
Offline

Rafael e extremamente necessário eu criar o SessionProvider e o SessionFactoryProvider !?
[Email] [MSN]
Lucas Cavalcanti
GUJ Hacker
[Avatar]

Membro desde: 08/07/2007 00:08:14
Mensagens: 6396
Offline

necessário não é, mas é melhor...


quando vc manda salvar o grupo, o id do usuário está preenchido?

--
Caelum
www.caelum.com.br

david.cs20
JavaGuru
[Avatar]

Membro desde: 06/02/2008 16:49:13
Mensagens: 238
Offline

Estou perguntando pois tenho um CreateSession a qual ler o Hibernate.cfg.xml




E lucas por enquanto ainda estou digitando o id do usuário na mão
Mais pretendo passar isso via um parâmetro vindo de um pop - up

[Email] [MSN]
Lucas Cavalcanti
GUJ Hacker
[Avatar]

Membro desde: 08/07/2007 00:08:14
Mensagens: 6396
Offline

cuidado: você está abrindo a Session, mas não está fechando... isso vai causar vazamento de conexões e sua aplicação vai parar de funcionar depois de um tempo...


bom, se vc tá passando mesmo o id do usuário antes de salvar o grupo, não tem pq ele não salvar isso no banco.

--
Caelum
www.caelum.com.br

david.cs20
JavaGuru
[Avatar]

Membro desde: 06/02/2008 16:49:13
Mensagens: 238
Offline

Seguir o conselho do rafael e criei o genericDAO porem ele da o seguinte erro no console:


E também pude observar que na url do projeto tanto o id quanto o nome do grupo estão setados corretamente



E como poderia fechar essa conexão do session ?
[Email] [MSN]
Lucas Cavalcanti
GUJ Hacker
[Avatar]

Membro desde: 08/07/2007 00:08:14
Mensagens: 6396
Offline

faz o seguinte, apague a sua classe CreateSession e coloque essas linhas no seu web.xml:



(se já tiver essa configuração de packages, só acrescente o pacote do hibernate)

e em todos os lugares onde estava usando esse CreateSession, receba a session no Construtor (se for um @Component ou algo do tipo)

o VRaptor vai se encarregar de cuidar da session pra vc.

Não precisa abrir transações no seu código, pq o VRaptor vai fazer isso pra vvc tb.

--
Caelum
www.caelum.com.br

Lucas Cavalcanti
GUJ Hacker
[Avatar]

Membro desde: 08/07/2007 00:08:14
Mensagens: 6396
Offline

ah, vc passou o parâmetro: grupo.supervisor=1 , mas se vc quer setar o id do supervisor, vc precisa passar:

grupo.supervisor.id=1


--
Caelum
www.caelum.com.br

david.cs20
JavaGuru
[Avatar]

Membro desde: 06/02/2008 16:49:13
Mensagens: 238
Offline

Fiz todos esses passo consigo realizar todas as operações no hibernate porem ainda fica dando o seguinte erro que nao tenho ideia do que pode ser !




Como se apos realizar a operação ele não enxergasse o que tem que ser feito !

This message was edited 2 times. Last update was at 16/01/2012 15:14:41

[Email] [MSN]
Lucas Cavalcanti
GUJ Hacker
[Avatar]

Membro desde: 08/07/2007 00:08:14
Mensagens: 6396
Offline

vc tirou todos os códigos que abrem e commitam transações?

--
Caelum
www.caelum.com.br

david.cs20
JavaGuru
[Avatar]

Membro desde: 06/02/2008 16:49:13
Mensagens: 238
Offline

So tenho commit no GenericDAO
[Email] [MSN]
 
Índice dos Fóruns » Frameworks e Bibliotecas brasileiros
Ir para:   
Powered by JForum 2.1.8 © JForum Team