相信跟Hibernate打过交道的应该都知道它的懒加载策略,这个真是让人欢喜让人忧啊,目前项目中用到了对象的关联字段取值问题,
而且因为这个报了一个hibernate的lazy加载导致空指针异常,后来在网上查找资料,相关grails的资料比较少,甚至一些外国网站也找过了,奈何本人英语很烂。。所以最后还是通过查grails的手册,找到几种解决方式,各位看官根据实际情况进行使用吧:
第一种方式:
static mapping = {
acquirerAccount fetch:"join"
}
static belongsTo = [acquirerAccount:boss.BoAcquirerAccount]
第二种方式:
static mapping = {
acquirerAccount lazy:false //也可以这样去配置
}
还有一种方式:
static mapping = {
table 'BO_MERCHANT'
cache usage:'read-only', include:'non-lazy'//使用非lazy方式的配置(来自grails参考手册)
//cache:'read-write' // or 'read-only' or 'transactional'
}
可以根据具体情况进行选择,呵呵,把大家查手册的时间都给省掉了,如果还有什么更好的方案的话,大家可以都发表下看法。
君子有成人之美,独乐乐不如众乐乐 ,经历过的许多人,许多事所得,我得出:程序开发的人是最大公无私的。