2011-08-29 4 views
7

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.

+2

niezwiązane - nie trzeba zadeklarować "Long id" w twoich klasach domen - Grails wstrzykuje to pole dla ciebie, wraz z polem 'version'. –

Odpowiedz

8

Zamiast:

Długie bid = Abid

zastosowanie:

Długi stawkę = a.bId

Powiązane problemy