我的服务有两个方法persistLatitude和findLatitude
@Service
@Transactional
public myservice1{
void persistLatitude (Long Latitude){
//some code
}
Long findLatitude (){
//some code
}
假设我在我的DB表中持久化纬度29° 52' N,但方法persistLatitude
继续运行一些其他任务。根据我的理解,由于transactional annotation,只有当整个方法完成执行时,我的更改才会提交到DB。
在此过程中,rest endpoint接收到一个请求,请求从DB表中查找纬度29° 52' N。由于method未完成,因此该事务尚未提交,因此findLatitude
将无法在表中找到29° 52' N。
当创建这个值的事务没有完全完成时,我可以做些什么来使findLatitude
检索这个纬度?
1条答案
按热度按时间jdgnovmf1#
你所要求的特性被称为“隔离级别读取未提交”。你可以将它应用于类或方法:
Postgres和Oracle不支持此功能。主要是因为副作用,如幻影或不可重复读取。