HibernateTemplate.findByExample()

Olá pessoal. Tudo bem?!

Montei o seguinte código:

[code] public void excluir(Y y) {
X x = new X();
HibernateTemplate ht = getDaoHibernate().getHibernateTemplate();

    x.setY(y);
    List lista = ht.findByExample(x);
    ht.deleteAll(lista);
}[/code]

Bem… traduzindo ele deveria listar todos os objetos persistentes do tipo “X” que possue um atributo “y” semelhante ao que chega por parâmetro. Só que ele não faz isso! Ao contrário, ele me lista todos os objetos persistêntes do banco.

O mais engraçado é que se eu utilizar um outro atributo como referência que seja do tipo String funciona perfeitamente.

Não sei se consegui demonstrar o meu problema devidamente, mas… será que alguém poderia me dar uma luz!!!

Desde já agradeço. Abraço.

[quote=dmarcosm]Olá pessoal. Tudo bem?!

Montei o seguinte código:

[code] public void excluir(Y y) {
X x = new X();
HibernateTemplate ht = getDaoHibernate().getHibernateTemplate();

    x.setY(y);
    List lista = ht.findByExample(x);
    ht.deleteAll(lista);
}[/code]

Bem… traduzindo ele deveria listar todos os objetos persistentes do tipo “X” que possue um atributo “y” semelhante ao que chega por parâmetro. Só que ele não faz isso! Ao contrário, ele me lista todos os objetos persistêntes do banco.

O mais engraçado é que se eu utilizar um outro atributo como referência que seja do tipo String funciona perfeitamente.

Não sei se consegui demonstrar o meu problema devidamente, mas… será que alguém poderia me dar uma luz!!!

Desde já agradeço. Abraço.[/quote]
a solução esta na documentação do hibernate.
o findByExample do Hibernate não busca por campos que pertençam a uma PK ou FK

Hummm… “Suspeitei desde o princípio!” rss

Muito obrigado urubatan… mas… será que você conheceria uma outra forma de fazer o que eu quero?!

Desde já agradeço. Abraço.

Alguém sabe como montar um findByExample
que procure também pelas PKs e FKs?

Pensei num arranjo de ifs com todas as possibilidades de
preenchimento dos campos mas fica um códigoextenso e
não muito claro, principalmente para tabelas muito grandes.

Se alguém tiver uma idéia melhor posta aeh!!!