JoinColumns Hibernate colunas diferentes

Olpa Pessoal, andei pesquisando no forum e não encontrei nada exatamente como com o que estou enfrentando.
Preciso fazer o seguinte mapeamento:
Possuo os beans :
PedaBean(Pedidos):

[code]@Entity
@Table(name=“ID_CDTB_PED_AMOSTRAS_PEDA”)
public class PedaBean implements Serializable {
private static final long serialVersionUID = 1L;

 @EmbeddedId
 private PedaID pedaID;
 @Column(name="PEDA_NR_TUBOS", nullable=true)
 private Integer nr_tubos;
 @Column(name="PEDA_NR_EXAMES", nullable=true)
 private Integer nr_exames;
 @Column(name="PEDA_CD_IDENTIF", nullable=true, length=15)
 private String cd_identif;
 @Column(name="PEDA_NO_NOME", nullable=true, length=45)
 private String no_nome;
 @Column(name="PEDA_DS_IDADE", nullable=true, length=7)
 private String ds_idade;
 @Column(name="PEDA_CD_SEXO", nullable=true, length=1)
 private char cd_sexo;
 @Column(name="PEDA_DS_DUM", nullable=true, length=10)
 private String ds_dum;
 @Column(name="PEDA_DS_SGES", nullable=true)
 private Double ds_sges;
 @Column(name="PEDA_NO_MEDICO", nullable=true, length=60)
 private String no_medico;
 @Column(name="PEDA_DS_OBSERVACAO", nullable=true, length=60)
 private String ds_observacao;
 @Column(name="PEDA_IN_SIPEX", nullable=true, length=1)
 private Character in_sipex;
 @Column(name="PEDA_NO_USUARIO", nullable=true, length=10)
 private String no_usuario;
 @OneToMany(mappedBy="pedaBean", cascade=CascadeType.ALL) 
 private List<DtexBean> exames;
            getters and setters...

[/code]

Com o pk (PedaID):

[code]@Embeddable
public class PedaID implements Serializable {

private static final long serialVersionUID = 1L;

@Column(name="PEDA_ID_CLIENTE", nullable=false)
private int id_cliente;
@Column(name="PEDA_DH_PEDIDO", nullable=false)
private Date dh_pedido;
@Column(name="PEDA_NR_PEDIDO", nullable=false)
private int nr_pedido;
            getters and setters...

[/code]

E itens do Pedido(Exames no caso):

[code]@Entity
@Table(name=“ID_CDTB_DETALHE_EXAMES_DTEX”)
public class DtexBean implements Serializable {

private static final long serialVersionUID = 1L;

@EmbeddedId
private DtexID dtexID;
@Column(name="DTEX_NR_QUANTIDADE", nullable=true)
private Integer nr_quantidade;
@Column(name="DTEX_DH_COLETA", nullable=true)
private Date dh_coleta;
@Column(name="DTEX_DS_OBSERVACAO", nullable=true, length=50)
private String ds_observacao;
@Column(name="DTEX_CD_BARRAS", nullable=true, length=12)
private String cd_barras;
@Column(name="DTEX_CD_BARRASCLIENTE", nullable=true, length=15)
private String cd_barrascliente;
@ManyToOne
private PedaBean pedaBean;
            getters and setters...

[/code]

com a PK:

[code]@Embeddable
public class DtexID implements Serializable {

private static final long serialVersionUID = 1L;

@Column(name="DTEX_ID_CLIENTE", nullable=false)
private Integer id_cliente;
@Column(name="DTEX_DH_PEDIDO", nullable=false)
private Date dh_pedido;
@Column(name="DTEX_NR_PEDIDO", nullable=false)
private Integer nr_pedido;
@Column(name="DTEX_CD_EXAME", nullable=false)
private Integer cd_exame;
            getters and setters...

[/code]

Minha dúvida é: como fazer o Join em DtexBean se as colunas das duas tabelas são diferentes ??? Elas não possuem um nome em comum como por exemplo ID_CLIENTE, DH_PEDIDO e NR_PEDIDO. Essa base de dados já existe e esta em operação, INFELIZMENTE NÂO POSSO MUDA-LA, em minha base de teste renomeei as colunas e minhas anotações e deu certo, mas não irei poder faze-lo.
Obrigado.

prefira IdClass em favor de EmbedableId , elas são sempre mais claras … veja um exemplo de troca de EmbeddableId por IdClass nessa outra thread http://guj.com.br/posts/list/141017.java

Banco legado é um saco =/

o nome no banco é ideferente, o mapeamente objeto relacional é feito pelos nomes das propriedades do objeto, que vc pode sim tornalos a ficar igual, mas isso não é obrigatorio, é possivel fazer joins sem essa abordagem…

com o IdClass, as propriedades vão sair de dentro da chave composta e virão para a classe, e ficará mais facil de vc fazer as ligações