我有一个实体产品,在实体内部,我有Contry实体。
当我执行Product.find或Product.get并获取国家/地区值时,我的国家/地区值仅具有ID值,但是在国家/地区实体中,我具有ID,名称和代码 [id:1,代码:null,名称:null],但是这种情况是间歇性的,有99%的时间会加载值[id:1,代码:XXX,名称:YYYYY]。
我认为这是一个缓存问题,但我没有在开发人员环境中进行仿真,而只是在生产环境中进行了仿真
我的Contry域:
class Country implements Serializable {
private static final long serialVersionUID = 1
def i18NService
String name
String code
static mapping = {
cache true
}
Country(String code, String name) {
this()
this.name = name
this.code = code
}
这是grails /休眠缓存错误吗?我如何模拟这种情况?
答案 0 :(得分:0)
您没有显示您的产品域,因此很难确定,但这听起来像是一个急切/懒惰的获取问题。基本上,引用的域对象可能会或可能不会与您的另一个域对象一起获取。
您可以在此处查看文档:{{3}},急切和延迟抓取都有相当重要的性能含义,因此不要盲目地更改它。基本上,如果您在使用产品时总是需要国家(地区),那么您应该使它急切。如果没有,则应根据需要刷新“国家/地区”。