単純な選択クエリを実行する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();
}
それを実行すると、ログに2つのクエリが見つかります。
- 結果を正常に取得する「select*from MyTable where some_id=...」クエリ
そしてそれの後、私は私のログでこれを見つけます:
org.springframework.orm.jpa.JpaTransactionManager:トランザクションコミットの開始org.springframework.orm.jpa.JpaTransactionManager:EntityManagerでのJPAトランザクションのコミット[org.hibernate.ejb.EntityManagerImpl@162add4] org.hibernate.transaction.JDBCTransaction:commitorg。 hibernate.event.def.AbstractFlushingEventListener:フラッシュタイムカスケードの処理org.hibernate.event.def.AbstractFlushingEventListener:フラッシュ:0挿入、1更新、2オブジェクトへの0削除
次に、別のクエリ「Updatemy_tableset....」を起動します。
この更新クエリが実行されるのはなぜですか?