NHibernate MultiQuery для Java - PullRequest
       3

NHibernate MultiQuery для Java

1 голос
/ 12 июля 2010

NHibernate (для .Net) имеет интерфейс IMultiQuery, в котором можно создать реализацию для использования ISession.CreateMultiQuery (). Мультизапрос позволяет запускать несколько операторов hql в одном пакете. Я не могу найти эквивалентную функцию в Hibernate (для Java).

Мультизапрос был бы идеален для Java-приложения, над которым я сейчас работаю. Он содержит около 10 запросов на выборку HQL, работающих в тесном цикле. Нагрузочное тестирование показывает, что это примерно на 50% медленнее (или, по-другому, это занимает вдвое больше времени, чем требуется). Мой анализ говорит, что почти все время затрачивается на задержку в сети между сервером приложений и базой данных. Я могу определенно переписать код, чтобы избежать узкого цикла, но это был самый простой дизайн, и он уже был проверен на корректность.

Итак, если я смогу как-то отбросить все 10 запросов HQL в одном пакете, это должно дать более чем достаточное увеличение производительности, не прибегая к более радикальным и подверженным ошибкам мерам. Есть ли способ сделать это с Hibernate в Java?

1 Ответ

0 голосов
/ 12 июля 2010

Мне не известен Java-эквивалент Multi Query, и я думаю, что эта функция относится только к версии .net (потому что она зависит от базы данных). Из документации NHibernate:

17,7. Multi Query

Multi запрос выполняется объединение запросов и отправка запрос к базе данных как единый строка. Это означает, что база данных должен поддержать возвращение нескольких наборы результатов в одном запросе. На момент этот функционал только включен для Microsoft SQL Server и SQLite.

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