В спецификации Критерии гибернации, если я хочу сгруппировать свойство в таблице, я должен использовать Projection.groupProperty.Проблема в том, что я не могу выбрать все поля в таблице.
То, что я хочу, это:
ВЫБРАТЬ * ИЗ СУЩЕСТВА Поле GROUP BY
Если я использую группув Критериях гибернации, тогда groupProperty должен существовать, и результатом sql будет: SELECT field FROM entity GROUP BY field.
Есть ли способ получить то, что я хочу?Я вижу в коде гибернации, в CriteriaJoinWalker, когда я хочу выбрать все (выбрать *), код уже указать, есть ли проекция или нет.Мое предположение, если я хочу изменить поведение, я должен изменить код CriteriaJoinWalker.Я могу изменить код, и, возможно, я смогу получить результат, какой хочу, но если я смогу, я не хочу переопределять код ядра hibernate для своего проекта.Есть ли способ изменить его напрямую без изменения спящего кода?
// CriteriaJoinWalker
if(translator.hasProjection())
{
resultTypes = translator.getProjectedTypes();
initProjection(translator.getSelect(), translator.getWhereCondition(), translator.getOrderBy(), translator.getGroupBy(), LockMode.NONE);
} else
{
resultTypes = (new Type[] {
TypeFactory.manyToOne(persister.getEntityName())
});
initAll(translator.getWhereCondition(), translator.getOrderBy(), LockMode.NONE);
}
Спасибо