Добавьте группу к быть в спящем режиме запросу критериев без проекции

У меня есть Запрос Критериев, который присоединяется к второй таблице B, для выбора объектов из таблицы A. Проблема, что этот запрос возвращает некоторые объекты из таблицы A многократно. Но мне нужны результаты, чтобы быть отличным.

Использование Критериев. DISTINCT_ROOT_ENTITY бесполезен, потому что это отфильтровывает несколько происшествий после того, как SQL-запрос выполнялся. Так, когда я ограничиваю свои результаты 20 хитами, я заканчиваю только с 4, хотя существует больше записей, то соответствие мой запрос.

В чистом SQL я просто могу добавить "идентификатор GROUP BY" к запросу, и все прекрасно, потому что соединение таблицы B только используется, для выбора объектов из таблицы A. Но с API критериев я не могу сделать этого. Единственный способ добавить "GROUP BY" при помощи Проекций. Но затем, я заканчиваю со скалярными величинами, не с реальным экземпляром моего класса. Используя ограничение SQL не работает также, потому что в спящем режиме, добавляет bogous "1=1" после моего "GROUP BY" - пункт.:(

Какие-либо идеи?

5
задан ekad 25 May 2017 в 13:51
поделиться

1 ответ

Хорошо, я исправил его:

Когда я изменил манифест на целевую версию 1,5, появилось миллион ошибок и только одна не была связана с непротиворечивостью класса R - в атрибутах файла манифеста «targetSdkVersion» и «maxSdkVersion» не существовало в sdk 1,5

Из-за этого класса R не удалось создать.

-121--842806-

Существует возможность записи фактических запросов SQL, которые Hibernate может использовать для возврата сущностей. Таким образом, если вам действительно нужно, вы можете обойти HQL и записать именно тот запрос, который вы хотите с вашей GROUP BY в нем.

Для получения подробной информации см. здесь .

Например, в файле hbm.xml можно определить такой запрос:

<sql-query name="exampleQuery">
<query-param name="param" type="int"/>
<return alias="x" class="foo.bar.X"/>
<return alias="y" class="foo.bar.Y"/>
    <![CDATA[
        select {x.*}, {y.*}
        from XEntity x
        inner join YEntity y on y.xId = x.id
        where y.value = :param
    ]]>
</sql-query>

Обратите внимание на {x. } и {y. } краткий синтаксис для выбора всех свойств объекта X и объекта Y

0
ответ дан 15 December 2019 в 06:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: