Grails仅返回实体的ID

时间:2018-10-11 11:25:05

标签: grails groovy hibernate-mapping hibernate-cache

我有一个实体产品,在实体内部,我有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 /休眠缓存错误吗?我如何模拟这种情况?

1 个答案:

答案 0 :(得分:0)

您没有显示您的产品域,因此很难确定,但这听起来像是一个急切/懒惰的获取问题。基本上,引用的域对象可能会或可能不会与您的另一个域对象一起获取。

您可以在此处查看文档:{​​{3}},急切和延迟抓取都有相当重要的性能含义,因此不要盲目地更改它。基本上,如果您在使用产品时总是需要国家(地区),那么您应该使它急切。如果没有,则应根据需要刷新“国家/地区”。