Grails возвращает только идентификатор объекта

У меня есть сущность Product и внутри сущности, у меня есть сущность Contry.

Когда я выполняю Product.find или Product.get и получаю значение страны, значения моей страны имеют только значение 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/ Hibernate? Как я симулирую эту ситуацию?

1 ответ

Вы не указали свой домен Product, так что трудно сказать наверняка, но это звучит как проблема ленивого извлечения. По сути, указанный доменный объект может быть или не быть выбран вместе с вашим другим доменным объектом.

Вы можете посмотреть документацию здесь: http://docs.grails.org/latest/ref/Database%20Mapping/lazy.html и здесь есть довольно важные последствия для производительности, связанные как с нетерпением, так и с отложенной загрузкой, так что не меняйте это вслепую. По сути, если вы всегда будете нуждаться в Country, когда будете использовать Product, вам, вероятно, стоит сделать это с нетерпением. Если нет, вы должны обновить страну по мере необходимости.

Другие вопросы по тегам