DB操作用のDAOクラス/メソッドのSpringの@Transactional
注釈を使用したIam。 PostgreSQL
Spring @Transactionalはトランザクションのオープンを防ぎます
SessionFactory
で構成 Hibernate
ORMが構成で@Bean
で作成し、DAOクラスで@Autowired
を用いretreivedれます。
@Autowired
SessionFactory sessionFactory;
@Transactional(value = "myTransactionManager")
public int getTotalClientsInDatabase() {
Query countTotalClientsQuery = sessionFactory.getCurrentSession()
.getNamedQuery(DeviceInfo.COUNT_TOTAL_CLIENTS);
return Integer.parseInt(countTotalClientsQuery.uniqueResult().toString());
}
getTotalClientsInDatabase
が呼び出されるたびに、常にトランザクションが開かれます。
SELECT
(DDL)クエリのように、トランザクションのオープンを防止したいと考えています。
@Transactional
が削除された場合Exception
がスローされ、sessionFactory
が同期されていません。
readOnly=true
が追加された場合のパフォーマンスはdippedです。 @Transactional(value = "myTransactionManager", readOnly=true)
を開ける方法はありませんか?Transaction
??