Grails: энергичная загрузка не работает - PullRequest
2 голосов
/ 26 ноября 2010

Я хочу получить доступ к списку организаций из пользовательского объекта в main.gsp:

<g:select name="effectiveOrganisation"
from="${session.user.organisations}" optionKey="id" optionValue="name"
value="${session.effectiveOrganisation?.id}" />

Объект пользователя определяется следующим классом:

class SystemUser {

    static hasMany = [organisations: Organisation]
    static belongsTo = [Organisation]
    static mapping = {
        organisations lazy: false
    }

}

Но когда я выполняю свой код, я получаю:

Exception Message: could not initialize proxy - no Session
Caused by: Error executing tag <g:form>: 
Error executing tag <g:select>: could not initialize proxy - no Session

Почему здесь не работает жаждущий?

1 Ответ

3 голосов
/ 29 ноября 2010

Это не ясно из вашего кода, но я собираюсь предположить, что у вас здесь есть многие ко многим, основываясь на свойстве belongsTo.

Мне удалось воспроизвести это с помощью Grails 1.3.5. Эта проблема, похоже, влияет только на ту сторону отношений, которая имеет свойство belongsTo. Если вы попробуете тот же код с организацией -> пользователи, он будет работать.

Исправление довольно странное: сделать коллекцию users на Organization тоже не ленивой.

Этот должен будет попасть в серию GORM Gotchas!

...