Hibernate Criteria + criterion.Example [DUVIDA]

Pessoal estou usando um metodo para encontrar os objetos mapeados do banco usando

import org.hibernate.Criteria; import org.hibernate.Session; import org.hibernate.criterion.Example;

o metodo eh esse:

    public List<T> findByExample(T instance) throws DAOException {
        EntityManager em = JPAHelper.createEntityManager();
        Session session = (Session) em.getDelegate();
        Example example = Example.create(instance).excludeZeroes();
        Criteria criteria = session.createCriteria(instance.getClass()).add(example);
        return criteria.list();
    }

eu fiz uma jsp com alguns combos que funcionam como filtros para a pesquisa. o bean da minha pagina tem esse metodo:

    public String pesquisarPlanejamento() {
        logger.info("Pesquisando planejamento");
        try {
            listaPlanejamento = null;
            
            PlanejamentoService planejamentoService = new PlanejamentoService();
            Planejamento planejamento = new Planejamento();
            
            SetorDiariaService setorDiariaService = new SetorDiariaService();
            SetorDiaria setorDiaria = setorDiariaService.retornarSetorDiaria(
                    SetorDiaria.class, setorPlanejamento);
            
            planejamento.setNumAnoPlanejamentoPla(anoPlanejamento);
            planejamento.setNumMesPlanejamentoPla(mesPlanejamento);
            planejamento.setFkSeqSetorDiariaSdi(setorDiaria);
            
            listaPlanejamento = planejamentoService.pesquisarPlanejamento(planejamento);
            return "SUCESSO";
        } catch (DAOException ex) {
            logger.error(ex);
            ex.printStackTrace();
            return "ERRO";
        }
    }

o tipo das variaveis que eu to usando no metodo

    private Long mesPlanejamento;
    private Long anoPlanejamento;
    private Long setorPlanejamento;

a funcao esta funcionando perfeitamente quando eu uso o mes e o ano para fazer o filtro, soh que quando eu estou usando o objeto SetorDiaria (que eh uma classe mapeada) o filtro nao funciona. esta me retornando tudo

no combo eu tenho o numero da fk e por esse numero eu estou peganda a classe com aquele ID e setando na minha classe mapeada que esta apontando para ela. aqui vai minha classe mapeada

@Entity
@Table(schema = "DB_SDP", name = "TB_PLANEJAMENTO_PLA")
@NamedQueries({
    @NamedQuery(name = "Planejamento.findByPkSeqPlanejamentoPla",
        query = "SELECT p FROM Planejamento p WHERE p.pkSeqPlanejamentoPla = :pkSeqPlanejamentoPla"),
    @NamedQuery(name = "Planejamento.findByNumMesPlanejamentoPla",
        query = "SELECT p FROM Planejamento p WHERE p.numMesPlanejamentoPla = :numMesPlanejamentoPla"),
    @NamedQuery(name = "Planejamento.findByNumAnoPlanejamentoPla",
        query = "SELECT p FROM Planejamento p WHERE p.numAnoPlanejamentoPla = :numAnoPlanejamentoPla"),
    @NamedQuery(name = "Planejamento.findByDscPeriodoPlanejamentoPla",
        query = "SELECT p FROM Planejamento p WHERE p.dscPeriodoPlanejamentoPla = :dscPeriodoPlanejamentoPla"),
    @NamedQuery(name = "Planejamento.findByDatCriacaoPlanejamentoPla",
        query = "SELECT p FROM Planejamento p WHERE p.datCriacaoPlanejamentoPla = :datCriacaoPlanejamentoPla")
})
public class Planejamento implements Serializable {
    
    private static final long serialVersionUID = 4684325304037668431L;
    
    @Id
    @SequenceGenerator(name = "PlanejamentoSeq", sequenceName = "DB_SDP.SEQ_PLANEJAMENTO_PLA", allocationSize = 1)
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "PlanejamentoSeq")
    @Column(name = "PK_SEQ_PLANEJAMENTO_PLA", nullable = false)
    private Long pkSeqPlanejamentoPla;
    
    @Column(name = "NUM_MES_PLANEJAMENTO_PLA")
    private Long numMesPlanejamentoPla;
    
    @Column(name = "NUM_ANO_PLANEJAMENTO_PLA")
    private Long numAnoPlanejamentoPla;
    
    @Column(name = "DSC_PERIODO_PLANEJAMENTO_PLA")
    private String dscPeriodoPlanejamentoPla;
    
    @Column(name = "DAT_CRIACAO_PLANEJAMENTO_PLA")
    @Temporal(TemporalType.DATE)
    private Date datCriacaoPlanejamentoPla;
    
    @JoinColumn(name = "FK_SEQ_SETOR_DIARIA_SDI", referencedColumnName = "PK_SEQ_SETOR_DIARIA_SDI")
    @ManyToOne
    private SetorDiaria fkSeqSetorDiariaSdi;
    
    @OneToMany(mappedBy = "fkSeqPlanejamentoPla")
    private Collection<ItemPlanejamento> itemPlanejamentoCollection;

    public Planejamento() {
    }

    public Planejamento(Long pkSeqPlanejamentoPla) {
        this.pkSeqPlanejamentoPla = pkSeqPlanejamentoPla;
    }

    public Long getPkSeqPlanejamentoPla() {
        return pkSeqPlanejamentoPla;
    }

    public void setPkSeqPlanejamentoPla(Long pkSeqPlanejamentoPla) {
        this.pkSeqPlanejamentoPla = pkSeqPlanejamentoPla;
    }

    public Long getNumMesPlanejamentoPla() {
        return numMesPlanejamentoPla;
    }

    public void setNumMesPlanejamentoPla(Long numMesPlanejamentoPla) {
        this.numMesPlanejamentoPla = numMesPlanejamentoPla;
    }

    public Long getNumAnoPlanejamentoPla() {
        return numAnoPlanejamentoPla;
    }

    public void setNumAnoPlanejamentoPla(Long numAnoPlanejamentoPla) {
        this.numAnoPlanejamentoPla = numAnoPlanejamentoPla;
    }

    public String getDscPeriodoPlanejamentoPla() {
        return dscPeriodoPlanejamentoPla;
    }

    public void setDscPeriodoPlanejamentoPla(String dscPeriodoPlanejamentoPla) {
        this.dscPeriodoPlanejamentoPla = dscPeriodoPlanejamentoPla;
    }

    public Date getDatCriacaoPlanejamentoPla() {
        return datCriacaoPlanejamentoPla;
    }

    public void setDatCriacaoPlanejamentoPla(Date datCriacaoPlanejamentoPla) {
        this.datCriacaoPlanejamentoPla = datCriacaoPlanejamentoPla;
    }

    public SetorDiaria getFkSeqSetorDiariaSdi() {
        return fkSeqSetorDiariaSdi;
    }

    public void setFkSeqSetorDiariaSdi(SetorDiaria fkSeqSetorDiariaSdi) {
        this.fkSeqSetorDiariaSdi = fkSeqSetorDiariaSdi;
    }

    public Collection<ItemPlanejamento> getItemPlanejamentoCollection() {
        return itemPlanejamentoCollection;
    }

    public void setItemPlanejamentoCollection(Collection<ItemPlanejamento> itemPlanejamentoCollection) {
        this.itemPlanejamentoCollection = itemPlanejamentoCollection;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (pkSeqPlanejamentoPla != null ? pkSeqPlanejamentoPla.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Planejamento)) {
            return false;
        }
        Planejamento other = (Planejamento) object;
        if ((this.pkSeqPlanejamentoPla == null && other.pkSeqPlanejamentoPla != null) || (this.pkSeqPlanejamentoPla != null && !this.pkSeqPlanejamentoPla.equals(other.pkSeqPlanejamentoPla))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "Planejamento[pkSeqPlanejamentoPla=" + pkSeqPlanejamentoPla + "]";
    }

}

e ae alguem sabe porque o metodo nao funciona quando eu seto o objeto FK? o metodo nao jogou nenhuma excecao. eu jah chequei no debugador ele esta setando o objeto direitinho na classe planejamento

se alguem puder me ajudar eu agradeco

[]'s