Problemas com relacionamento do hibernate

Opa…tenho um relacionamento ManyToOne, to usando MySQL e nas tabelas nao criei chave estrangeira, somente criei um campo inteiro a mais chamado ‘id_empresa’ na tabela carga.

Meus Beans estão da seguinte maneira:

@Entity(name="carga")
public class CargaBean implements Carga{
	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	private Integer ID;
	private String carroceria;
	private String estadoOrigem;
	private String estadoDestino;
	private String cidadeOrigem;
	private String cidadeDestino;
	private String gerenciadoraRisco;
	private String tipoVeiculo;
	private String dataCarregamento;
	private boolean obrigatorioSeguro;
	private boolean cargaFracionada;
	private boolean rastreamentoObrigatorio;
	private boolean gerenciadoraRiscoObrigatorio;
	private Long pesoCargaTonelada;
	private Long pesoCargaVolume;
	private Double valorFrete;
	private String descricao;
	
	@ManyToOne(fetch = FetchType.EAGER)
	@JoinColumn(name="id")
	@Fetch(FetchMode.JOIN)
	private EmpresaBean empresa;
	
	public EmpresaBean getEmpresa() {
		return empresa;
	}

	public void setEmpresa(EmpresaBean empresa) {
		this.empresa = empresa;
	}

	public String getCarroceria() {
		return carroceria;
	}

	public String getCidadeDestino() {
		return cidadeDestino;
	}

	public String getCidadeOrigem() {
		return cidadeOrigem;
	}

	public String getDataCarregamento() {
		return dataCarregamento;
	}

	public String getEstadoDestino() {
		return estadoDestino;
	}

	public String getEstadoOrigem() {
		return estadoOrigem;
	}

	public String getGerenciadoraRisco() {
		return gerenciadoraRisco;
	}

	public Long getPesoCargaTonelada() {
		return pesoCargaTonelada;
	}

	public Long getPesoCargaVolume() {
		return pesoCargaVolume;
	}

	public String getTipoVeiculo() {
		return tipoVeiculo;
	}

	public boolean isCargaFracionada() {
		return cargaFracionada;
	}

	public boolean isGerenciadoraRiscoObrigatorio() {
		return gerenciadoraRiscoObrigatorio;
	}

	public boolean isObrigatorioSeguro() {
		return obrigatorioSeguro;
	}

	public boolean isRastreamentoObrigatorio() {
		return rastreamentoObrigatorio;
	}

	public void setCargaFracionada(boolean cargaFracionada) {
		this.cargaFracionada = cargaFracionada;
	}

	public void setCarroceria(String carroceria) {
		this.carroceria = carroceria;
	}

	public void setCidadeDestino(String estadoDestino) {
		this.estadoDestino = estadoDestino;
	}

	public void setCidadeOrigem(String estadoOrigem) {
		this.estadoOrigem = estadoOrigem;
	}

	public void setDataCarregamento(String dataCarregamento) {
		this.dataCarregamento = dataCarregamento;
	}

	public void setEstadoDestino(String estadoDestino) {
		this.estadoDestino = estadoDestino;
	}

	public void setEstadoOrigem(String estadoOrigem) {
		this.estadoOrigem = estadoOrigem;
	}

	public void setGerenciadoraRiscoObrigatorio(boolean gerenciadoraRiscoObrigatorio) {
		this.gerenciadoraRiscoObrigatorio = gerenciadoraRiscoObrigatorio;
	}

	public void setGerenciadoraRisco(String gerenciadoraRisco) {
		this.gerenciadoraRisco = gerenciadoraRisco;
	}

	public void setObrigatorioSeguro(boolean obrigatorioSeguro) {
		this.obrigatorioSeguro = obrigatorioSeguro;
	}

	public void setPesoCargaTonelada(Long pesoCargaTonelada) {
		this.pesoCargaTonelada = pesoCargaTonelada;
	}

	public void setPesoCargaVolume(Long pesoCargaVolume) {
		this.pesoCargaVolume = pesoCargaVolume;
	}

	public void setRastreamentoObrigatorio(boolean rastreamentoObrigatorio) {
		this.rastreamentoObrigatorio = rastreamentoObrigatorio;
	}

	public void setTipoVeiculo(String tipoVeiculo) {
		this.tipoVeiculo = tipoVeiculo;
	}

	public Double getValorFrete() {
		return valorFrete;
	}

	public void setValorFrete(Double valorFrete) {
		this.valorFrete = valorFrete;
	}

	public Integer getID() {
		return ID;
	}

	public void setID(Integer id) {
		this.ID = id;
	}

	public String getDescricao() {
		return descricao;
	}

	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}

e meu EmpresaBean

@Entity(name="empresa")
public class EmpresaBean implements Empresa{
	
	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	@Column(name="id")
	private Integer ID;
	private Long CEP;
	private Long CNPJ;
	private Long telefone;
	private String cidade;
	private String estado;
	private String contato;
	private String endereco;
	private String razaoSocial;
	private String usuario;
	private String senha;
	private String tipoEmpresa;
	
	@OneToMany(mappedBy="empresa", fetch=FetchType.LAZY)
	@Cascade(CascadeType.ALL)
	private Collection<CargaBean> cargas = new ArrayList<CargaBean>();
	
	public Collection<CargaBean> getCargas() {
		return cargas;
	}

	public void setCargas(Collection<CargaBean> cargas) {
		this.cargas = cargas;
	}

	public Long getCEP() {
		return CEP;
	}

	public Long getCNPJ() {
		return CNPJ;
	}

	public String getCidade() {
		return cidade;
	}

	public String getContato() {
		return contato;
	}

	public String getEndereco() {
		return endereco;
	}

	public String getEstado() {
		return estado;
	}

	public String getRazaoSocial() {
		return razaoSocial;
	}

	public String getSenha() {
		return senha;
	}

	public Long getTelefone() {
		return telefone;
	}

	public String getTipoEmpresa() {
		return tipoEmpresa;
	}

	public String getUsuario() {
		return usuario;
	}

	public void setCEP(Long CEP) {
		this.CEP = CEP;
	}

	public void setCNPJ(Long CNPJ) {
		this.CNPJ = CNPJ;
	}

	public void setCidade(String cidade) {
		this.cidade = cidade;
	}

	public void setContato(String contato) {
		this.contato = contato;
	}

	public void setEndereco(String endereco) {
		this.endereco = endereco;
	}

	public void setEstado(String estado) {
		this.estado = estado;
	}

	public void setRazaoSocial(String razaoSocial) {
		this.razaoSocial = razaoSocial;
	}

	public void setSenha(String senha) {
		this.senha = senha;
	}

	public void setTelefone(Long telefone) {
		this.telefone = telefone;
	}

	public void setTipoEmpresa(String tipoEmpresa) {
		this.tipoEmpresa = tipoEmpresa;
	}

	public void setUsuario(String usuario) {
		this.usuario = usuario;
		
	}

	public Integer getID() {
		return ID;
	}

	public void setID(Integer id) {
		this.ID = id;
	}

Se eu não mandar nenhuma Carga na List, ele funciona numa boa…mas qdo eu tento mandar, ele simplesmente não salva nada…alguém pode me dar uma força?

[]'s

[quote=mendigosujo]Opa…tenho um relacionamento ManyToOne, to usando MySQL e nas tabelas nao criei chave estrangeira, somente criei um campo inteiro a mais chamado ‘id_empresa’ na tabela carga.

Meus Beans estão da seguinte maneira:

	
	@ManyToOne(fetch = FetchType.EAGER)
	@JoinColumn(name="id")
	@Fetch(FetchMode.JOIN)
	private EmpresaBean empresa;

[/quote]

O nome que vai em @JoinColumn(name=“id”) deve ser o nome da coluna que será responsável pelo relacionamento. No seu caso, imagino que é só alterar para “id_empresa” que deve funcionar.

Já alterei e não funcionou…eu to começando a desconfiar que é problema com a config do meu mysql!

Já que não funcionou, um bom teste pra fazer é gerar o banco pelo hibernate (De preferencia em outra base pra não perder os seus dados) e ve como ele está fazendo o relacionamento.