Qual a diferenção entre Restrictions.gt e Restrictions.eq no Hibernate

          "  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 = :smiley:

Restrictions

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.