" Qual a diferenção entre Restrictions.gt e Restrictions.eq no Hibernate "
Amigos estou com uma duvida, ja vasculhei a rede , mas nao encontrei a restosta.
Alguem sabe e pode me responder ?
Desde ja agradeço .
Olha pra ser sincero nao entedi o que você quis dizer com “diferenção”… mas se for a diferença entre gt e eq, e o seguinte… o primeiro eh o greater then (maior que) e o segundo é equals (igual), são comparações… operadores matemáticos conhecidos tb como > e =
Oberilo,
O Restrictions.gt vai adicionar uma comparação com o “>” (maior) no sua clausula where, enquanto o Restrictions.eq vai adicionar uma comparação com “=” no seu where, no caso a sua Criteria.
Restrictions.gt -> Select Tabela WHERE campo > comparacao
Restrictions.eq -> Select Tabela WHERE campo = comparacao
cada tipo equivale a uma expressão de restricao para uma entidade específica. verifique na API:
http://www.hibernate.org/hib_docs/v3/api/org/hibernate/criterion/Restrictions.html
editado: adicionando uma pergunta! muito já se vi falando no lado bom sobre o uso de restrictions, porém ninguém falando mal. Aí queria levantar esta pergunta aqui, se mais alguém tem pontos não legais sobre o uso deste recurso, ou possui solução melhor para tratamento do mesmo?
Se vc não utilizar corretamente, vc ferra com sua performace.
Ela usa 100% das configurações dos mapeamentos.
Por exemplo, digamos que vc tinha um classe Turma que tenha uma lista de Alunos, e para esse relacionamento, está definido LAZY = FALSE;
Ao usar criteria, essa coleção de Alunos virá preenchida, mesmo que você só tenha a necessidade de dados da classe Turma.
Criteria criteria = sessao.createCriteria(Turma.class);
Agora se você usar hql
Query query = sessao.createQuery(“from Turma”);
a lista de Alunos, para cada entidade Turma encontrada não virá preenchida, pois não foi “explicitamente” solicita.
Bom, meu único problema com criteria foi esse, performace. Mas é muito boa, inclusive meus DAOs genéricos são somente com criteria. Hql só pra relatório mesmo que uso.