所以我的问题是,在我可以在页面上呈现它们之前,我的验证错误已从我的域对象中删除。我以为我过去已经修复了这个错误,但它又悄悄地出现在我身上。
这是我的原始实现。tripService.stepData(trip)
调用时正在清除错误。
编辑 - 我不应该只在页面添加到 hasMany 关系时遇到这个问题。
控制器 -
Trip trip = tripService.savePrePaymentInfo(params)
if (trip.hasErrors()) {
render(view: "step4", model: tripService.stepData(trip))
}
else {
redirect(action: trip.status.action, id:trip.id)
}
服务 -
Map stepData(Trip trip)
{
Map returnSet = [:]
returnSet.status = Status.findAllByActionNotEqual("review")
returnSet.trip = trip
returnSet
}
所以我在网上做了一些阅读,有人在 2 年前的论坛帖子上说休眠中有一些东西......可能的错误......我不知道,但他们的建议奏效了。建议是将控制器包装在withTransaction
:
Trip.withTransaction {
//Controller code here
}
这对我来说很好。现在的问题是我认为我有一个tripService
再次调用的标记库。进行该调用时,它现在正在清除我的验证错误。这真是令人沮丧。有没有人知道我可以做些什么来解决这个问题?
编辑:添加从 taglib 调用的服务方法:
String findBannerName(Long pidm, String format = 'LFMI')
{
"abc"
//It really doesnt matter what is here - tried just returning this string and it produced the issue
}