Relacionamento OneToMany

3 respostas
dahenz

Pessoal,

estou tentando fazer um relacionamento OneToMany através de mapeamento do hibernate, e gostaria de saber por que está dando o erro abaixo:

org.hibernate.MappingException: Could not determine type for: br.com.projeto.bean.ObjetoBean, for columns: [org.hibernate.mapping.Column(objeto)]

Abaixo seguem os beans e seus devidos mapeamentos:

//Bean responsável para vincular Objetos do sistema ao perfil.

@Entity
@Table (name="objetos_perfil_web")
public class ObjetosPerfilBean {

	@Id @GeneratedValue
	private Long id;
	@OneToOne
	@JoinColumn(name="perfil_web_id")
	private PerfilBean perfil;
	@OneToMany
	@JoinColumn(name="objeto_web_id", referencedColumnName="id")
	private List<ObjetoBean> objeto;
      
   getters and setters 

}

Observem que estou utilizando relacionamento unidirecional......

//Bean de objeto a ser vinculado ao bean objetos por perfil acima.

@Entity @Table(name="objeto_web")
public class ObjetoBean {

	@Id @GeneratedValue
	private Long id;	
	private String descricao;	

   getters and setters

}

Me baseio por esse briefing: http://en.wikibooks.org/wiki/Java_Persistence/OneToMany

mas está dando erro... AJUDA!!!!!!!!!!!!

3 Respostas

arthurminarini

olha não vou dizer que seja isso mas vc pode tentar:

no @Table coloque schema que é o nome do banco de dados

no @GeneratedValue coloque dentro o strategy (GenerationType.IDENTITY se for mysql)

no @id coloque a atributo do tipo integer (apenas para teste depois vc volta)

no @OneToMany use dentro o mappedBy = atributo da outra classe que referencia esta,fetch=FetchType.LAZY) private List galerias;  >>> e tire JoinColumn deste onetomany

na outra classe adote os mesmo assuntos abordados e coloque um manytoone com joincolum
dahenz

Olá Arthur....

Cara fiz algumas mudanças...

da uma olhada:

@Entity 
@Table (name="perfil_web")
public class PerfilBean {

	@Id @GeneratedValue
	private Long id;
	private String descricao;
	@OneToMany(mappedBy="perfil")
	private List<ObjetoBean> objeto;

// getters and setters
}
@Entity @Table(name="objeto_web")
public class ObjetoBean {

	@Id @GeneratedValue
	private Long id;	
	private String descricao;
	@ManyToOne
	@JoinColumn(name="perfil_fk")
	private PerfilBean perfil;

// getters and setters
}

Ou seja.. quero que um perfil obtenha vários objetos....

E no banco adicionei um campo chamado perfil na tabela objetos e um campo chamado objeto na tabela de perfil;

Na hora de persistir grava só o id e a descrição do perfil, sendo que, o objeto fica null, e no cadastro de objetos não grava nada....

O que fazer?

Obrigado....

dahenz

Nesse exemplo eu utilizo 3 tabelas ou com 2 resolve?

Criado 18 de março de 2009
Ultima resposta 19 de mar. de 2009
Respostas 3
Participantes 2