У меня есть проект с Spring 4 и Hibernate 4 в качестве JPA.И у меня есть DAO-слой bean-компонента с методом, подобным:
@Transactional
public MyDtoObject getDataWithALotAggregation(String params){
String queryStr = "select aLotAggregatedData from aLotJoinedTables where aLotParams="+params;
Object[] rawData = sessionFactory
.getCurrentSession()
.createSQLQuery(queryStr)
.uniqueResult();
return mapRawDataToMyDtoObject(rawData);
}
, и я только что сравнил время этого метода с временем jdbcTemplate.queryForObject(queryStr, mapper, params)
, и я удивился, что Hibernate немного быстрее, чем JDBC API (~ 5-10%).
Есть идеи, почему Hibernate быстрее или JdbcTemplate такой медленный?
Я был уверен, что Hibernate, особенно с транзакциями, должен работать медленнее, чем JdbcTemplate ...