Есть ли разница в производительности между этими двумя инструкциями? - PullRequest
3 голосов
/ 23 июня 2010

У меня есть следующая спецификация критериев, и я хотел узнать, есть ли какая-либо разница в производительности или использовании их памяти. 1-й способ:

criteria.add(Restrictions.eq("case.estadoOperativo", Caso.EstadoOperativo.COMPLETADO))
        .add(Restrictions.eq("case.estadoAdministrativo", Caso.EstadoAdministrativo.TARIFICADO));

2-й способ:

criteria.add(Restrictions.eq("case.estadoOperativo", Caso.EstadoOperativo.COMPLETADO));
criteria.add(Restrictions.eq("case.estadoAdministrativo",Caso.EstadoAdministrativo.TARIFICADO));

Ответы [ 3 ]

4 голосов
/ 23 июня 2010

Разницы нет, метод add возвращает this (для цепочки методов), а не новый экземпляр.

1 голос
/ 23 июня 2010

Короче, нет.После компиляции критерии .add и .add станут функционально идентичными.Существует вероятность того, что один или другой процесс будет несколько быстрее компилироваться, но разница будет в несколько наносекунд времени компиляции, и никаких отличий во время выполнения.

1 голос
/ 23 июня 2010

Неа.Из документации API на http://docs.jboss.org/hibernate/core/3.3/api/

add(Criterion criterion)
    Add a restriction to constrain the results to be retrieved.

Вы еще не получили никаких результатов.Ни одно из ваших ограничений не будет иметь значения, пока вы не позвоните .list ()

...