Dúvida com SELECT ManyToOne no JPA [RESOLVIDO]

6 respostas
brunorota

Ae galera

Estou começando estudar JPA, e me veio uma dúvida que não consegui esclarecer no livro e procurei na net também não encontrei algo

Por Ex.

Eu tenho um Relacionamento entre Usuario e Tipo de ManyToOne bidirecional

Na minha classe Tipo eu tenho um List de Usuario.

Quando eu desenvolvo uma query para esse List de Usuario ser preenchido com os seus respectivos usuários.

Por ex. O tipo permissão tem X usuário, eu quero fazer um SELECT para o Tipo permissão seje carregado com os Usuário que possuem o Tipo permissão

Eu tentei

SELEC t FROM Tipo, porem não carregou o List de Usuário

Alguém pode me ajudar fazendo favor?

Att.

Até +

6 Respostas

wagnerfrancisco

Não entendi exatamente tua dúvida. Se você quer carregar a lista de usuários de um determinado Tipo (no caso Tipo permissão) e você já tem o Tipo, poderia simplesmente fazer:

Já que é bidirecional. Mas se mesmo assim quisesse fazer a consulta:

Sendo que vc passa o parâmetro tipo depois.

Era isso ou entendi errado?

Abraço.

RafaelCassau

Amigo se você puder postar o codigo fonte talvez ficaria mais claro para nós te ajudarmos!

brunorota

Verdade galera

Ele já traz mesmo, eu tinha chamado uns metodos errados =S

valeww pela ajudaa

Agora uma dúvida, é melhor eu ter esse relacionamento ManyToOne bidirecional, ou é melhor eu fazer um select mesmo?

No caso usuários não são tantos que o sistema tera

Outra pergunta

Quando eu preciso de verdade de um relaciomaneto Bidirecional sendo que eu consigo esse comportamento com select a parte?

Com o relaciomaneto bidirecional não fica mais pesado o sistema?

Att.

RafaelCassau

Você não necessariamente será obrigado a criar um relacionamento bidirecional, o mesmo só serve, por exemplo no seu caso quando dado um usuario vc quer saber os tipos em que ele esta relacionado e dado um tipo você quer buscar os usuarios relacionados com esse tipo!
Se você não usar o relacionamento bidirecional você tambem conseguira realizar essa operação, mais com mais dificuldade!

brunorota

saquei

No caso para poupar memoria eu poderia marcar a lista de usuarios com Lazy, pq nao eh toda hora que eu vou precisar dos usuários

Mais valeww

Ajudou mto

Até a próximaa

RafaelCassau

exatamente amigo, ae com o lazy você só busca ele quando realmente for necessario apenas dando um getUsuario(), se não tiver mais duvidas altere o status do topico para [Resolvido]!
abraços!

Criado 30 de junho de 2011
Ultima resposta 3 de jul. de 2011
Respostas 6
Participantes 3