我试图了解现有代码,然后在代码中发现@Transactional(read-only = true)
的使用。
我浏览了这个链接。(Spring @Transactional read-only propagation)。
但我无法将其与我的案例联系起来。
我使用Hibernate作为ORM工具,并使用HibernateTransactionManager
来管理事务。
根据我的理解,代码试图将一些数据提交到一组表,在此之前我需要从两个主表中获取一些数据。
如果主表查询没有返回任何内容,则应抛出异常。
以下是整个代码的框架。
@Transactional
persistSomeData(int id){
MasterData masterData = getMasterData(id);
if(null == masterData)throw new Exception("No Master data found !!");
persistChildTableData(masterData.someField);
}
@Transactional(read-only = true)
MasterData getMasterData(int id){
//query to get the masterdata using id
}
我想知道read-only = true
中getMasterData()
的重要性。