我的问题涉及这样一个事实,即我不太清楚JPA中的交易如何运作。
假设我有一个服务和一个存储库:我将从服务@Transactional
制作所有方法,但请考虑以下情况:
在我的服务中,我有一个方法persistData
,如下所示:
@Transactional
public void persistData(){
make an http request which is slow or any other time consuming method
repository.persistData(...)
}
Hibernate是否会打开一个事务并在此方法返回之前保持该事务,或者当我在对象上调用persist时它将只发出事务,因此SQL将执行?