Boa-tarde pessoal,
Continuo com o problema no mapeamento do Hibernate usando Annotations, mas já tive algum progresso desde o último post.
Tenho 3 tabelas :
<Empresa>
id - Integer
nome - Varchar
<Pagamento>
id - Integer
descricao - Varchar
<EmpresaPagamento>
empresa - Integer
pagamento - Integer
Estou tendo problemas ao mapear a tabela <EmpresaPagamento>
Olhando no tutorial oficial, fiz desta forma :
@Entity
class Empresa {
private Long id;
private String nome;
private Set<Pagamento> pagamentos;
/* Métodos e atributos irrelevantes omitidos */
@ManyToMany(cascade = CascadeType.PERSIST)
@JoinTable( name = "empresapagamento",
uniqueConstraints = @UniqueConstraint( columnNames = {"empresa", "pagamento" } ),
joinColumns = @JoinColumn(name = "empresa_id", referencedColumnName = "id"),
inverseJoinColumns = @JoinColumn(name = "pagamento_id", referencedColumnName = "id")
)
public Set<Pagamento> getPagamentos() {
return pagamentos;
}
@Id @GeneratedValue
public Long getId() {
return id;
}
}
@Entity
class Pagamento {
private Long id;
private String descricao;
private Set<Empresa> empresas;
/* Métodos e atributos irrelevantes omitidos */
@ManyToMany
public Set<Empresa> getEmpresas() {
return empresas;
}
@Id @GeneratedValue
public Long getId() {
return id;
}
}
@Entity
class EmpresaPagamento {
private EmpresaPagamentoPK id;
@Id
public EmpresaPagamentoPK getId() {
return id;
}
/* Métodos e atributos irrelevantes omitidos */
}
@Embeddable
class EmpresaPagamentoPK {
private Empresa empresa;
private Pagamento pagamento;
/* Métodos e atributos irrelevantes omitidos */
}
Estou tendo a seguinte Exception:
Exception in thread "main" java.lang.ExceptionInInitializerError
at loja.dao.util.HibernateUtil.<clinit>(HibernateUtil.java:31)
at loja.util.Util.main(Util.java:96)
Caused by: org.hibernate.MappingException: Unable to find column with logical name: empresapagamento.empresa
at org.hibernate.cfg.Mappings.getPhysicalColumnName(Mappings.java:493)
at org.hibernate.cfg.AnnotationConfiguration.buildUniqueKeyFromColumnNames(AnnotationConfiguration.java:331)
at org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:258)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1168)
at loja.dao.util.HibernateUtil.<clinit>(HibernateUtil.java:28)
... 1 more
Já utilizei da técnica de tentativa e erro para manipular os atributos mas não consegui encontrar a forma correta de fazer este mapeamento.
Se alguém puder me ajudar ficarei agradecido.
[ ]