Hibernate OneToMany retornando null

O mapeamento esta correto e sem erros… mas:

onde CPFCNPJ é a chave das 2 tabelas e a tabela Cliente_limite tem uma secudary SQ_CLIENTE_LIMITE

Não retorna nada

Cliente c = (Cliente) session.load(Cliente.class, "027507");
log.debug("ClienteLimite: " + c.getClienteLimite());

E na mão retorna a lista

Criteria criteria = session.createCriteria(ClienteLimite.class);
criteria.add(Restrictions.eq("CPFCNPJ","027507"));
List<ClienteLimite> clienteLimite = criteria.list();
log.debug("ClienteLimite: " + clienteLimite );

os mapeamentos são grandes dai não sei se colocalos aqui seria bom…
Sera que da para pegar o valor que o hibernate passa no ‘?’ da query sql ?

Por ex: o campo CPFCNPJ que é a chave é uma string se ele passar ‘027507’ como int ele não retorna nada mesmo …

  • Esta como Lazy

Fiz uma mapeamento menos para mostrar para vocês …

// MiniCliente
    @Id
    @Column(name="CPFCNPJ", unique=true, length=14, nullable=false)
    private String CPFCNPJ;
    
    @Column(name="CD_ESTADO", length=2, nullable=false)
    private String CD_ESTADO;
    
    @Column(name="CD_CIDADE", length=9, nullable=false)
    private Integer CD_CIDADE;
    
    @Column(name="NM_CLIENTE", length=60)
    private String NM_CLIENTE;
    
    @OneToMany(mappedBy = "miniCliente")
    private List<MiniClienteLimite> miniClienteLimites;

//MiniClienteLimite

    @Id   
    @Column(name="SQ_SEQUENCIA", unique=true, nullable=false)
    private Integer SQ_SEQUENCIA;
    
    @ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="CPFCNPJ")
    private MiniCliente miniCliente;

A ligacao é feita pela chave CPFCNPJ ( varchar(14) )

A saida é: []

Olhando o log axei o problema
Estou usando firebird e estão usando char(14) ou seja retorna 14 caracters
se for CPF vai retornar "00000000 " e se for cnpj vai ser “0000000000"
vai achar o primeiro mais quando comparar sem os espaços nos outros não vai achar nada igual
"00000000000” != "00000000 "

fiz uma “gambi” !!! para arrumar… sobreescrevi o metodo getByID do ClienteDAO e fiz verificar os espaços e adicionar se precisar …

alguem tem outra ideia ?