Dúvida no mapeamento ManyToOne

2 respostas
E

Boa noite pessoal, estou em dúvida em como criar um relacionamento ManyToOne (creio que seja este a ser usado),
olha só, tenho duas entidas, Linhas e Empresas, ao salvar a entidade Empresa no BD não preciso
indicar quais suas Linhas, mas ao salvar as Linhas preciso indicar qual Empresa ela pertence. Até ai ok,
está salvando direitinho no BD. O problema é quando vou excluir o objeto empresa me lança a exceção informando
o relacionamento das entidades (ForeignKey), e não estou conseguindo listar as Linhas.

1º Como irei excluir o Objeto empresa ?
2º Como listarei as linhas com sua devida empresa ?

Vejam como está ?

Linha.java

@Entity
public class Linha {
	@Id
	@GeneratedValue
	private Integer id_linha;
	private String nome_linha;
	@ManyToOne(fetch = FetchType.EAGER)
	@OnDelete(action = OnDeleteAction.CASCADE)
	@JoinColumn(name = "id_empresa", nullable = false)
	private Empresa empresa = new Empresa();
gets e sets
hashs e equals
Empresa.java
@Entity
@RequestScoped
public class Empresa implements Serializable {

	private static final long serialVersionUID = 1L;
	@Id
	@GeneratedValue
	private Integer id_empresa;
	private String nome_empresa;

gets e sets
hashs e equals

Metodo utilizado para listar Linhas

public List<Linha> listar() {
		
		return this.session.createCriteria(Linha.class).list();
	}
Metodo para excluir Empresa
public void excluir(Empresa empresa) {
		this.session.delete(empresa);

	}
Se vocês puderem me ajudar ficarei muito agradecido, muito obrigado a todos...

2 Respostas

rderoci

eduardimaa:
Boa noite pessoal, estou em dúvida em como criar um relacionamento ManyToOne (creio que seja este a ser usado),
olha só, tenho duas entidas, Linhas e Empresas, ao salvar a entidade Empresa no BD não preciso
indicar quais suas Linhas, mas ao salvar as Linhas preciso indicar qual Empresa ela pertence. Até ai ok,
está salvando direitinho no BD. O problema é quando vou excluir o objeto empresa me lança a exceção informando
o relacionamento das entidades (ForeignKey), e não estou conseguindo listar as Linhas.

No banco de dados, recrie a constraint utilizando o ON DELETE CASCADE

Vc deve estudar HQL: http://docs.jboss.org/hibernate/orm/3.5/reference/pt-BR/html/queryhql.html
Aqui um tópico que se adequa a sua situação: http://www.guj.com.br/java/59479-hibernate-retorno-de-querylist-com-2-objetos-em-from

Abs,
Romulo Rocha

E

Vou tentar aki, obrigadooo

Criado 2 de julho de 2012
Ultima resposta 3 de jul. de 2012
Respostas 2
Participantes 2