Как проверить, если таблица пуста, используя Hibernate - PullRequest
4 голосов
/ 29 мая 2010

Как использовать Hibernate, как наиболее эффективно определить, является ли таблица пустой или непустой? Другими словами, есть ли в таблице 0 или более 0 строк?

Я мог бы выполнить HQL-запрос select count(*) from tablename и затем проверить, равен ли результат 0 или не равен 0, но это не оптимально, так как я бы запрашивал у базы данных больше подробностей, чем мне действительно нужно.

Ответы [ 2 ]

3 голосов
/ 29 мая 2010

Следующий SQL - очень эффективный способ проверить, содержит ли таблица строку:

SELECT EXISTS (SELECT NULL FROM tablename)

Я не уверен, как конвертировать его в HQL - может, он просто работает?

2 голосов
/ 29 мая 2010

Многие базы данных эффективны при возврате числа записей в таблице, но если вы хотите проявить творческий подход, как насчет session.createQuery("select 1 from table").setMaxSize(1).list().isEmpty()?

Или: session.createQuery("select 1 from table").setFetchSize(1).scroll(ScrollMode.FORWARD_ONLY).next() == null

Я думаю, что от базы данных зависит, какой метод самый быстрый.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...