Получение идентификатора загруженного объекта «один ко многим» без повторного посещения БД с помощью GORM - PullRequest
8 голосов
/ 29 августа 2011

Мне нужно домены GORM, A & B, которые относятся к таблицам базы данных.A имеет отношение один ко многим с B. Из-за этого классы выглядят примерно так:

class A {
   B b
   Long id
}

class B {
   Long id
}

Когда я получаю экземпляр A, идентификатор соответствующего экземпляра B получается избаза данных.Однако, когда я пытаюсь получить доступ к этому идентификатору через что-то вроде:

A a = A.get(11)
Long bid = a.b.id

, весь объект загружается из базы данных.В некоторых случаях я хочу только идентификатор B (который уже был получен) и не хочу загружать весь экземпляр из базы данных.Есть ли способ получить идентификатор из B, не возвращаясь и не извлекая весь объект.

ПРИМЕЧАНИЕ: я знаю, что он делает дополнительную выборку в строке с a.b.id, потому что я вижу SQLсоздается с тех пор, как я включил опцию loggingSql в моем файле источника данных.

1 Ответ

9 голосов
/ 29 августа 2011

Вместо:

Длинная ставка = abid

Использование:

Длинная ставка = a.bId

...