[quote=jcmird]Amigo,
dessa forma que vc quer fazer a sua clausula where nao vai funcionar. Vai dar erro no select pois vc tá passando o metodo da classe.
[/quote]
Então, gostaria de saber se tem como fazer isso de alguma forma. Imagina o seguinte: tenho um método que retorna se o objeto está em um estádo válido:
class Order {
public boolean isValid() {
return this.isOpen() || this.isPending();
}
}
Então gostaria de trazer todas as Order que sejam validas. Nesse caso eu teria que duplicar o código do isValid na query HQL.
Se eu pudesse usar o método na HQL seria o ideal. Outra saida, seria processar o resultado da query e colocar um filtro:
it = orders.iterator();
while (it.hasNext()) {
Order o = (Order)it.next();
if (! o.isValid()) continue;
// restante do código.
}
Mas ai eu teria que trazer todos os registros, o que não é uma boa ideia.
Entendi o que você quer fazer.
Um dia já precisei! Mas não fiz com HQL…
Fiz uma PROC no banco e foi a saída que encontrei!
T-SQL foi a resposta dessa minha pergunta!
Mas se alguém souber, como faz isso com HQL, me interessaria bastante.
Flw!
[quote=skalinichenko]…
Fiz uma PROC no banco e foi a saída que encontrei!
T-SQL foi a resposta dessa minha pergunta!..
Flw![/quote]
Então, nesse caso, a lógica estaria na PROC, que vai me retornar todas as Order válidas. Ok!
Mas se em um determinado momento, eu quiser retornar uma Order qualquer do banco e verificar se ela é valida?
Uma forma mais abrangente de formular a questão: como usar a mesma lógica em um único objeto e
em uma coleção de objetos?
Se houver uma outra biblioteca externa ao Hibernate não teria problema.