Erro com relacionamento Many-To-Many com inverseJoinColumn no Hibernate/JPA

Estamos usando Hibernate 3 como implementação JPA, rodando no Oracle Weblogic 10 R3.

Todos os relacionamentos Many-To-Many que possuem inverseJoinColumn com nomes repetidos estão dando erro, conforme exemplo abaixo:

@JoinTable( name = "SO009T", joinColumns = { @JoinColumn(name = "CD_PAIS_RPO", referencedColumnName = "CD_PAIS_RPO"), @JoinColumn(name = "NU_OFI_CTTE", referencedColumnName = "NU_OFI")}, inverseJoinColumns = { @JoinColumn(name = "CD_PAIS_RPO", referencedColumnName = "CD_PAIS_RPO"), @JoinColumn(name = "NU_OFI_CTO", referencedColumnName = "NU_OFI") }) @ManyToMany(fetch = FetchType.LAZY) private List<Oficina> oficinas;

@JoinTable( name = "SO004T", joinColumns = { @JoinColumn(name = "CD_PAIS_RPO", referencedColumnName = "CD_PAIS_RPO"), @JoinColumn(name = "NU_OFI", referencedColumnName = "NU_OFI")}, inverseJoinColumns = { @JoinColumn(name = "CD_PAIS_RPO", referencedColumnName = "CD_PAIS_RPO"), @JoinColumn(name = "NU_FOR", referencedColumnName = "NU_FOR") }) @ManyToMany(fetch = FetchType.LAZY) private List<Fornecedor> fornecedores;

O erro: [color=red]INFO: building session factory net.sf.hibernate.MappingException: Repeated column in mapping for collection[/color]

Não conseguimos achar nenhuma solução, alguma idéia do que possa ser?

Os relacionamentos Many-to-Many que não possuem essa redundância de nomes funcionam perfeitamente.

Obrigado.

Curiosamente, se você colocar um espaço em branco em um dos lados, funciona. Mas não dá para garantir até onde isso funciona:

Mas percebemos que a tabela de relacionamento deveria ter 4 campos e não apenas 3, como está no modelo. Com 3 campos a gente garante uma integridade de dados que é requisito do sistema, porém afeta o funcionamento do Hibernate. Com OpenJPA isto não ocorre.