Mapeamento Hibernate - Trilogia

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&lt;Pagamento&gt; 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&lt;Pagamento&gt; getPagamentos() {
        return pagamentos;
    }
    @Id @GeneratedValue
    public Long getId() {
        return id;
    }
}
@Entity
class Pagamento {
    private Long id;
    private String descricao;
    private Set&lt;Empresa&gt; empresas;
	
    /* Métodos e atributos irrelevantes omitidos */

    @ManyToMany
    public Set&lt;Empresa&gt; 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.&lt;clinit&gt;(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.&lt;clinit&gt;(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.

[ :smiley: ]

Marcio,
Tenta substituir:

@JoinTable(name="empresapagamento",

por:

@JoinTable(name="EmpresaPagamento",

Já tentei fazer isso … e mais um monte de coisas que não funcionaram …
valew

ta usando Postgre ?

Se tiver eu faço idéia de qual seja o problema, pois ja perdi um dia inteiro para fazer os mapaementos funcionarem 100% com postgre.

Estou usando o MySQL 5.1
Não sei em que o banco de dados poderia estar afetando minha aplicação.

Abraço

Postgre é case-sensive, se vc escreve algo maisculo pra ele é uma coisa, se for minusculo é outra tem uma série de detalhes que descobri a muito custo.