ManyToMany

1 resposta
dahenz

Estou fazendo um cadastro de objetos por perfil para acessos ao meu sistema, e estou utilizando hibernate com mysql, sendo que criei as seguintes tabelas no banco de dados:

Perfil
id smallint pk
descricao varchar(50)

Objeto
id smallint pk
descricao varchar(50)

objetos_perfil
id smallint pk
id_perfil smallint uk
id_objeto smallint uk

Fiz as devidas ligações das foreign keys e tudo. Abaixo seguem os beans com seus mapeamentos:

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

	@Id @GeneratedValue (strategy=GenerationType.AUTO)
	private Long id;
	private String descricao;
	@OneToMany(mappedBy="perfil", cascade=CascadeType.ALL)
	private List<ObjetosPerfilBean> objeto;

// getters and setters
}

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

	@Id 
	@GeneratedValue (strategy=GenerationType.AUTO)
	private Long id;	
	private String descricao;

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

	@Id @GeneratedValue(strategy=GenerationType.AUTO)
	private Long id;
	@ManyToOne(cascade=CascadeType.ALL)
	@JoinColumn(name="perfil_web_id")
	private PerfilBean perfil;
	@ManyToOne(cascade=CascadeType.ALL)
	@JoinColumn(name="objeto_web_id")	
	private ObjetoBean objeto;

//getters and setters
}

Tudo funciona.. mas eu só consigo persistir um objeto por perfil. Se coloco mais do que um bean de objeto dentro do list de objetos do perfil, o hibernate só irá persistir o último objeto_perfil....

Onde estou errando???

Obrigado por que ajudar.....

1 Resposta

sigma

Coloca o metodo em que vc executa o salvar.

E não precisa do id na tabela “objetos_perfil”

Criado 20 de março de 2009
Ultima resposta 20 de mar. de 2009
Respostas 1
Participantes 2