Я использую Hibernate для получения количества строк для конкретного запроса. Допустим, у меня есть таблица «Персона» с различными столбцами. Один из этих столбцов - «имя».
Если бы я хотел узнать количество людей с именем «Эндрю», какой из этих способов был бы наиболее эффективным? Предполагая, что есть разница в производительности между некоторыми / всеми из них. Есть ли лучший способ сделать это с помощью Hibernate / SQL?
(1) Выбрать все столбцы
Query query = session.createQuery("from Person where name= :name");
query.setParameter("name", name);
List result = query.list();
int count = result.size();
(2) Выберите только имя столбца
Query query = session.createQuery("select name from Person where name= :name");
query.setParameter("name", name);
List result = query.list();
int count = result.size();
(3) Использование Count в запросе
Query query = session.createQuery("select count(*) from Person where name= :name");
query.setParameter("name", name);
long count = (Long) query.uniqueResult();
(4) Использование счетчика со столбцом имени в запросе
Query query = session.createQuery("select count(name) from Person where name= :name");
query.setParameter("name", name);
long count = (Long) query.uniqueResult();
Редактировать: Извините, у меня в списке было два номера 3