Pessoal, eu tenho a seguinte classe a minha aplicação:
@Entity
@Table(name = "CLASSIF")
public class Classificacao{
// todos os campos devidamente papeados e funcionando
// id, propriedades....
private Classificacao pai;
public getPai();
// esse método não possui propriedade/field/campo
// como podem ver, ele é calculado
public int getNivel()
if(pai != null) return pai.getNivel() + 1;
else return 0;
}
Essa classe representa uma hierarquia de classificações de serviços para o sistema que estou construindo.
Por exemplo:
- Serviços Gerais
---- Limpeza de Salas de Aula
---- Limpeza de Escritórios - Manutenção
---- Manutenção Elétrica
-------- Manutenção Predial
-------- Manutenção Residencial
-------- Manutenção Industrial
---- Conserto Agendado
e assim por diante.
Na aplicação, eu gero um árvore, como a arvore de diretório que o windows gera…
eu gostaria de saber se há como eu executar o seguinte hql pelo hibernate:
select
c
from
Classificao c
where
c.nivel = 0
Este sql ia ser util para mim quando eu fosse usar algo do tipo
c.nivel <= 3
,por exempolo. Mais especificamente, gostaria de saber se posso usar o campo “nivel” dentro de uma query.
No entanto, quando eu executo este hql, o hibernate lança uma exceção informando que não consegue resolver a propriedade “nivel” da classe Classificação.
Sabem se posso fazer isso de alguma maneira ??
Gostaria de resolver para que este método fique mais elegante e bem mais legível na leitura do código.