Динамический Hibernate Query - PullRequest
0 голосов
/ 30 апреля 2011

У меня есть метод, который я использую для возврата динамического запроса.Этот метод показан ниже


public Query getLastId(String sProvider)
{
       String serviceProvider = sProvider.toLowerCase();     
       String query2 = "SELECT MAX(:serviceProvider.id) " + 
                   " FROM :sProvider :serviceProvider ";

       return em.createQuery(query2)
              .setParameter("sProvider", sProvider)
              .setParameter("serviceProvider", serviceProvider);

}

Я хочу, чтобы этот метод возвращал

<code>SELECT MAX(multichoice.id) FROM Multichoice multichoice

, когда я вызываю такой метод

getLastId("Multichoice");

Пожалуйста, как мне написать переменную запроса для возврата ответа?

1 Ответ

1 голос
/ 30 апреля 2011

Для выполнения этой задачи вы можете использовать объектную модель Criteria и проекции для выполнения запроса по различным типам: посмотрите на эту статью (15.7. Проекции, агрегация и группировка)

вот код:

List results = session.createCriteria(class)
.setProjection( Projections.max("id"))
.list();

Тогда вместо строки вы должны отправить класс вашему методу.

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