Toplink -Duvidas - ao efetuar consulta

Bom dia Pessoal, estou trabalhando com o toplink
e surgiu um problema
vou demonstrar um exemplo :

public class Cliente implements Serializable {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY) 
    @Column(name = "id_cliente")
    private String idCliente;
    @Column(name = "nome_cliente")
    private String nomeCliente;
    @OneToMany(mappedBy = "cliente")
    private List<Endereco> enderecos;

e

public class Endereco implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id_endereco")
    private String idEndereco;
    @ManyToOne
    @JoinColumn(name = "id_cliente",referencedColumnName="id_cliente")
    private Cliente cliente;

quando utilizo assim
ReadAllQuery queryLista = new ReadAllQuery(this.getClasse());
Expression expressao;
expressao = b.get(“idCliente”).equal(3);
ai quando eu peco para executar e tranquilo

retorna mais ou menos como: select * from NomeTabela where idCliente = 3

ate ai sem problemas

o problema esta quando tento mapear com chaves estrangeiras

vejamos em Endereco

tem um objeto do Tipo Cliente.
nao consigo filtrar, ou sej a, fazer um sql tipo “select * from Endereco where idCliente=2”;

ja tentei
expressao = b.get(“cliente.idCliente”).equal(2);

expressao = b.get(“Cliente.idCliente”).equal(2);

expressao = b.get(“id_cliente”).equal(2);

e todos retornam o erro

Exception Description: Invalid query key [cliente.idCliente] in expression.

Exception Description: Invalid query key [Cliente.idCliente] in expression.

Exception Description: Invalid query key [id_cliente] in expression.

o hibernate pelo menos eh assim…
alguem poderia me ajudar?