让我先说我的代码昨天还在工作。我将我的提交回滚到它工作的时间。
唯一不同的是今天运行了迁移以从某些表中删除某些列。我看不出这会如何影响它
我正在执行 google oauth 身份验证,并且在来自 google 的回调 url 中,我正在执行大量保存/更新/等操作。我的控制器调用一个可以完成所有操作的服务。如果我在 return 语句所在的断点处查询数据,我可以看到数据。没有例外、验证错误或任何会让我相信任何错误的事情。有任何想法吗?
class MyController {
def myService
def callback() {
myService.update()
//At this point when I run X.get(1) it is returning null
redirect uri: "..."
}
}
@Transactional
class MyService {
def update() {
...
//If I break at this return statement I can run X.get(1) and it returns
return someData;
}
}
编辑:我找到了原因,但我不明白这是怎么发生的。我最终打电话给userDetailsService.loadUserByUsername
. 该方法是抛出一个NoStackUsernameNotFoundException
. 我在我的代码中捕获了该异常,但是无论如何它都会导致事务回滚。