У меня есть метод DAO, который выполняет простой запрос выбора:
@Transactional
public List<Object[]> getMyTableData(Long someId)
{
Session session = (Session) getEntityManager().getDelegate();
return session
.createSQLQuery("SELECT * FROM my_table where some_id = :someId")
.addEntity(MyTable.class)
.setParameter("someId", someId)
.list();
}
Когда я запускаю его, я нахожу в журналах два запроса:
- Запрос "выберите * из MyTable, где some_id =...", который успешно получает результат
И после этого я нахожу это в своих журналах:
org.springframework.orm.jpa.JpaTransactionManager: инициация фиксации транзакции org.springframework.orm.jpa.JpaTransactionManager: фиксация транзакции JPA в EntityManager [org.hibernate.ejb.EntityManagerImpl@162add4] org.hibernate.transaction.JDBCTransaction: фиксации org. hibernate.event.def.AbstractFlushingEventListener: обработка каскадов времени сброса org.hibernate.event.def.AbstractFlushingEventListener: сброс: 0 вставок, 1 обновление, 0 удалений для 2 объектов
затем он запускает еще один запрос «Обновить набор my_table ....»
Почему этот запрос на обновление выполняется?