所以,我一直在撞墙试图解决这个问题。我们有三个域表:Product,Group,ProdGroupState。 ProdGroupState看起来像这样,
Class ProdGroupState{
Product product
Group group
State state
String indicator
}
我们有一个新页面,可让用户生成报告,包括列出给定产品/组对的所有状态的ProdGroupState指标。生成列表的代码是
def prodGroupStateInstance = ProdGroupState.withCriteria{
and{
eq "group", groupInstance
eq "product", productInstance
}
}
在报告的每个页面上,我们调用具有该代码的相同方法,每次都传递不同的产品。本地测试显示一切正常,报告中包含正确的数据。
我们遇到的问题是,一旦我们将代码从本地计算机移动到我们的测试服务器(Websphere,如果它很重要),上面的代码就不再提供正确的数据了。但它确实非常不一致。只有一个产品出现问题,其他产品都能获得正确的数据。对于除了使用的一个组以外的所有组,{1}} prodGroupStateInstance
为[]
时,不工作的那个最终为groupInstance
。该组具有所有50个州的预期值:[Y,Y,Y,N,...]
检查日志中的调试语句显示productInstance
和withCriteria
具有预期值,如果问题是{{1}}调用,那么您希望每个产品都会出现此问题。所以我或多或少地难以理解为什么在多台机器上本地测试并且工作正常的部件在部署后会以如此奇怪的方式失败。