Mam do domen GORM, A & B, które odnoszą się do tabel bazy danych. A ma relacji jeden-do-wielu z B. Ze względu na to, zajęcia wyglądają podobnie do:Uzyskiwanie ID załadowanego obiektu "jeden do wielu" bez kolejnej wizyty w DB z GORM
class A {
B b
Long id
}
class B {
Long id
}
Kiedy pobierać instancję ID odpowiedniej instancji B są pobierane z bazy danych. Jednak gdy próbuję uzyskać dostęp do tego identyfikatora przez coś takiego:
A a = A.get(11)
Long bid = a.b.id
cały obiekt jest ładowany z bazy danych. W niektórych przypadkach potrzebuję tylko identyfikatora B (który został już pobrany) i nie chcę ładować całej instancji z bazy danych. Czy istnieje sposób na uzyskanie ID z B bez powrotu i pobrania całego obiektu.
UWAGA: Wiem, że robi on dodatkowe pobranie na linii z a.b.id
powyżej, ponieważ widzę wygenerowany SQL od momentu włączenia opcji loggingSql
w moim pliku DataSource.
niezwiązane - nie trzeba zadeklarować "Long id" w twoich klasach domen - Grails wstrzykuje to pole dla ciebie, wraz z polem 'version'. –