Dúvida em relação a Hibernate, ManyToMany, pesquisa com restriction

Falae Todos… desculpa se jah tiver tópico sobre isso(estou a um tempão e não achei)… mas é o seguinte…

tenho duas tabelas… sistema e tela…

uma tela tem vários sistemas e um sistema tem várias telas… oq gera a tabela sistema_tela…

no meu sistema… procurarei sempre as telas relacionadas a um sistema… nunca o contrário… então creio eu que eu tenha um relacionamento ManyToMany unidirecional.Estou correto?!

bom… criei minhas classes da seguinte forma:

Sistema.java

public class Sistema{ @Id private Long id; private String descricao; @ManyToMany private List<Tela> telas; //getters and setters }

Tela.java

public class Tela{ @Id private Long id; private String descricao; private String url; }

Até aqui está correto?

agora é a dúvida principal… como eu faço para listar todas as telas a partir de um sistema? devo usar restrictions? se sim… como?

devo colocar o código no arquivo SistemaDao ou TelaDao?

é isso…valeu!

Olá meu caro rbrugnollo, como dito no caso anterior vc tem um relacionamento unidirecional.
Deixa lhe explicar casos de estudo para analise de implementacao de mapeamento, isso vai lhe ajudar.

1º Caso

  • O Projeto faz um maior acesso a Telas através de um ou mais Sistemas.
    Entao aplica-se um relacionamento unidirecional definindo um “set” de telas para o Sistema
    Se em poucos casos vc estiver fazendo acesso as informacoes de uma determinada tela e for necessário exibir os
    sistemas relacionados a ela, implemente no SistemaDaoImp o metodo ListlistarPorTela(Tela tela);

2º Caso

  • O Projeto faz um maior acesso a Sistema(s) através de Telas.
    Entao aplica-se um relacionamento unidirecional de forma contraria;

3º Caso

  • O Projeto faz um acesso consideravel a ambas entidades
    Entao aplica-se um relacionamento bidericional criando métodos com consultas otimizadas.Nesse caso vc deve gerenciar o carregamento de Colecoes das entidades, aplicando o “no lazy” quando realmente necessario, tudo isso vai valer com uma boa análise de empregabilidade dos mapeamentos. Nao queira ter a experiência de habilita lazy e explode do outro lado, desabilita lazy detona do outro lado.

Ah! Anoteia certinho seus modelos, que vai dar certo.

http://www.hibernate.org/hib_docs/annotations/reference/en/html_single/

Abrs.

Então progfer… como havia dito… meu sistema fará apenas busca das telas por um determinado sistema… nunca o contrário…

como faço está implementação?

Tenho que fazer no DAO de tela certo? porque meu resultado serão telas…

restringir telas por sistema se na minha classe tela não tem nada falando que ela se relaciona com sistemas?

VALEU

Alguem pode me ajudar?