[RESOLVIDO] JPA + Hibernate + Problema com select em mappedBy

3 respostas
Jubarius

Boa tarde pessoal,

Gostaria de pedir ajuda para vocês em problema que eu considero que deva ter uma solução simples, mas eu até agora não a achei. O meu problema é o seguinte: tenho uma classe “Projeto” que mantém uma relação de usuários de um sistema que possuem acesso a este projeto. Até aí tudo bem tudo bem, tudo bonito. O meu problema é que tenho a classe “Usuário”, a qual possui um relacionamento com a classe “Projeto”, através de uma coleção marcada com “mappedBy”, conforme abaixo:

public class Projeto {

	@Id
	@GeneratedValue
	private long codigo;

	@OneToMany
	private List<Usuario> usuarios = new ArrayList<Usuario>();

	//Gets e Sets, além de outros atributos

}
public class Usuario {

	@Id
	@GeneratedValue
	private long codigo;

	@OneToMany(mappedBy = "usuarios")
	@Inject(required = false)
	private List<Projeto> proj = new ArrayList<Projeto>();

	//Gets e Sets, além de outros atributos

}

O meu problema é que não consigo realizar uma consulta, através da classe Usuário, que retorne a coleção de projetos. Já tentei fazer a consulta por um determinado usuário e fazer um get da coleção, o que não deu certo. Sei que o problema é básico, para quem entende deve ser “sopa”, mas para mim até o momento tá parecendo grego. Há propósito, a consulta da relação de usuários através de um projeto, ou seja, os usuários que pertencem a determinado projeto está funcionando, por isso acredito que deva estar fazendo algo errado em relação ao mappedBy.

Agradeço a todos que puderem dar uma ajuda.

Inté…

3 Respostas

W

Nao sou especialista nem nada mais se é um relacionamento onetomany nao deveria ser indicado nas duas classes??

public class Projeto {  
  
    @Id  
    @GeneratedValue  
    private long codigo;  
  
    @OneToMany  
    private List<Usuario> usuarios = new ArrayList<Usuario>();  
  
    //Gets e Sets, além de outros atributos  
  
}  


public class Usuario {  
  
    @Id  
    @GeneratedValue  
    private long codigo;  
  
    @ManytoOne(mappedBy = "usuarios")  // aki???
    @Inject(required = false)  
    private List<Projeto> proj = new ArrayList<Projeto>();  
  
    //Gets e Sets, além de outros atributos

e nem esta definido o tipo de @Cascade oque pode mudar alguma coisa
intao vc que fazer um relacionamento que um projeto tenha vários funcionários, e que um funcionário so pode estar num projeto ou um manytomany

Jubarius

Meu amigo wilkem
Muito obrigado. Você tinha razão o problema todo estava nos relacionamentos entre as classes, nem tinha percebido que era “@ManyToMany” (um usuário está em muitos projetos e um projeto possui muitos usuários). Só arrumei o relacionamento e durante a consulta fiz um “get” nos projetos e pronto, tava aí.

Mais uma vez obrigado.

Vlw

W

nem precisar agradecer conhecimento a gente divide , eu tive o mesmo problemas a uns meses atras ehhehe vlw.

Criado 13 de fevereiro de 2013
Ultima resposta 14 de fev. de 2013
Respostas 3
Participantes 2