Devo domini GORM, A & B, che si riferiscono alle tabelle del database. A ha una relazione uno-a-molti con B. A causa di ciò, le classi sembrano simili a:Ottenere l'ID di un oggetto caricato uno-a-molti senza un altro viaggio nel DB con GORM
class A {
B b
Long id
}
class B {
Long id
}
Quando ho recuperare un'istanza di A l'ID del corrispondente istanza di B viene recuperato dal database. Tuttavia, quando provo ad accedere a tale ID tramite qualcosa come:
A a = A.get(11)
Long bid = a.b.id
l'intero oggetto viene caricato dal database. In alcuni casi, desidero solo l'ID di B (che è già stato recuperato) e non voglio caricare l'intera istanza dal database. C'è un modo per ottenere l'ID da B senza tornare indietro e recuperare l'intero oggetto.
NOTA: So che sta effettuando un ulteriore recupero sulla linea con a.b.id
perché posso vedere l'SQL generato da quando ho attivato l'opzione loggingSql
nel mio file DataSource.
non collegati - non è necessario per dichiarare 'Long id' nelle tue classi di dominio - Grails inietta quel campo per te, insieme al campo' version'. –