Pessoal, tenho um relacionamento entre as entidades Equipamento e Cliente onde cliente é opcional.
Para não deixar valor de chave nulo na tabela equipamento, criei uma tabela de junção equipamento_cliente na classe Equipamento.
[code]public class Equipamento {
private Integer equipamentoId;
private Cliente cliente;
// mapeamento com tabela de junção
@ManyToOne(fetch = FetchType.LAZY)
@JoinTable(name = "equipamento_cliente", joinColumns = {@JoinColumn(name = "equipamento_id")},
inverseJoinColumns = {@JoinColumn(name = "cliente_id")})
public Cliente getCliente() {
return cliente;
}
public void setCliente(Cliente cliente) {
this.cliente = cliente;
}
}[/code]
Até aí tudo certo, mas o problema é quando mapeio bidirecionalmente na classe Cliente, aparece o seguinte erro na compilação: Deployment “persistence.unit:unitName=#Projeto” is in error due to the following reason(s): org.hibernate.MappingException: Unable to read the mapped by attribute for equipmentos in org.domain.projeto.entity.Cliente!
O mapeamento bidirecional fiz da seguinte forma:
[code]
public class Cliente {
private Integer clienteId;
private List<Equipamento> equipamentos;
// mapeamento bidirecional
@OneToMany(mappedBy = "cliente")
public List<Equipamento> getEquipamentos() {
return equipamentos;
}
public void setEquipamento(List<Equipamento> equipamentos) {
this.equipamentos = equipamentos;
}
}[/code]
Alguém sabe o que está errado ou o que falta? Todos os outros mapeamentos bidirecionais @ManyToOne/@OneToMany funcionam, mas todos são @JoinColumn.
Valeu pessoal!!!