SELECT NO HIBERNATE - alguem pode me ajudar?

tarde pessoal!!!

estou com um problema, eu tenho uma entidade usuario que possui uma lista de suas permissoes, o problema é q eu nao consigo fazer uma busca para me retornar os usuarios e suar permissoes na tabelinho

minha classe

private Long id;
	private String usuario;
	private String senha;
	@ManyToMany(fetch=FetchType.EAGER) 
	private List<Permissao> permissoes;
..............

já tentei de tudo, mas nao consigo… alguem pode me ajudar!!!

como vc mapeou o outro lado?

do outro lado esta mapeado assim:

@ManyToMany(fetch=FetchType.LAZY, mappedBy="permissoes")
private List<Usuario> usuarios;

você precisa de um mapemento bidirecional?

Se não precisar tenta fazer desta forma

@ManyToMany(fetch=FetchType.EAGER)
@JoinTable(name="categoria_cliente_juridico",
		   joinColumns={@JoinColumn(name="id_cliente_juridico")},
		   inverseJoinColumns={@JoinColumn(name="id_categoria")})
private Set<CategoriaCliente> categoriaClienteSet;

Aqui eu to indicando qual é a tabela q é o relacionamento many-to-many, e bt indico as chaves, local (id_cliente_juridico) e a da outra ponta do mapeamento (id_categoria)
Esta fucionando perfeitamente assim, tenta ai!

e como eu faço p/ listar tudo?? na tabela?? nao entendi como eu vou fazer um list

nesse caso como ta carregando td com eager vc pode dar um “get” direto na coleção

nao deu certo nao… ele nao dá um get na minha lista nao… :cry:

posta pra mim os seus dois lados do relacionamento

classe usuario

private Long id;  
private String usuario;  
private String senha;  
@ManyToMany(fetch=FetchType.EAGER)   
private List&lt;Permissao&gt; permissoes; 

classe permissao

@ManyToMany(fetch=FetchType.LAZY, mappedBy="permissoes")  
private List&lt;Usuario&gt; usuarios;  

ele cria uma terceira tabela, e é esta terceira tabela q eu preciso, mas nela so consta os id, e nao consigo pelo hibernate pegar essa tabela pq ela nao é uma classe… nao sei mais o q fazer :oops:

obrigada pela paciencia :slight_smile:

O que vc precisa fazer aí é definir o lado que irá persistir a relação entre os dois (a tabelinha com os id’s) e indicar da maneira q te passei no post anterior, que faço um relacionamento entre ClienteJuridico e CategoriaCliente, precisa definir os joinColums e joinTable(q é a tabelinha com os id’s), faz uns testes ai usando aquele codigo q te passei, tem q passar os parametros corretos tb senão ele não acha a tabela relacionamento!

http://www.hibernate.org/hib_docs/annotations/reference/en/html/entity.html#entity-mapping-association

bom dia!!!

eu tenho q mapear dos dois lados???

eu fiz assim, mas só do lado forte, no lado fraco continua igual:

@ManyToMany(fetch=FetchType.EAGER) 
@JoinTable(name="usuario_permissoes",  
		joinColumns={@JoinColumn(name="id_usuario")},  
		inverseJoinColumns={@JoinColumn(name="permissao_id")}) 
private List&lt;Permissao&gt; permissoes;

e mesmo assim nao consigo dar o get neles… :frowning: acho q vou desistir… :cry:

A persistencia é a chave para um bom desenvolvedor, nunca desista!

Aparentemente esta certo, se as chaves q vc indicou forem com estes nomes mesmo em sua tabela relacionamento!

se vc quiser pegar apenas as permissões do lado do usuário, nem precisa ter mapeado o outro lado com um list de usuarios!

vc tem certeza q tem registro no bd?

entao… tem registro sim no banco…

ah desisto!!! :cry: pior q nem com select normal eu estou conseguindo :shock: :shock:

o meu maior problema é, em uma tabela (do richfaces mesmo) como eu vou exibir uma lista de usuarios e suas permissoes???

é isso q eu preciso :frowning:

eu to usando a tree do tomahawk

eu uso a tree do tomahawk pra listar as permissoes de acesso agrupadas por menu, ñ me lembro se o richfaces não tem ou eu não consegui fazer funcionar nele

vixe, será q é por isso entao, o richfaces nao aceita?!

mas um select com hql ou criteria era p/ fazer, não era?!?! nem isso eu consigui :cry: