Если вести себя с Hibernate осторожно, то он будет работать не хуже чистого JDBC. Нужно правильно настраивать ассоциации и поменьше двусторонних маппингов с коллекциями (чтобы родительский объект даже не пытался втягивать всю коллекцию ассоциаций) А отчеты можно получать использую CriteriaBuilder и Projections. Причем если вы используете Groovy, запрос описывается очень красиво ввиде Closure. У нас включение myBatis началось когда Hibernate стал ругаться на закрытую сессию и LazyInstantiation там где в настройках все по учебнику. Но повторюсь, что вложенность уровней прекрасно работает с Hibernate, а использование проекции позволяет вам получить результат в виде Map
Если вести себя с Hibernate осторожно, то он будет работать не хуже чистого JDBC. Нужно правильно настраивать ассоциации и поменьше двусторонних маппингов с коллекциями (чтобы родительский объект даже не пытался втягивать всю коллекцию ассоциаций) А отчеты можно получать использую CriteriaBuilder и Projections. Причем если вы используете Groovy, запрос описывается очень красиво ввиде Closure. У нас включение myBatis началось когда Hibernate стал ругаться на закрытую сессию и LazyInstantiation там где в настройках все по учебнику. Но повторюсь, что вложенность уровней прекрасно работает с Hibernate, а использование проекции позволяет вам получить результат в виде Map