Hibernate one-to-one lazy loading FAIL!

Hibernate, per relazioni one-to-one con optional=true ignora il lazy loading!

Perché?

Ho due tabelle con relazione uno-a-uno:

L’entity che rappresenta B diventa:

class B {
private C cee;
public C getCee(){
   return cee;
}
public void setCee(C cee){
   this.cee = cee;
}
}

Hibernate deve determinare il valore di cee nel momento in cui carica B dal database. Ma, se il campo non è dichiarato come obbligatorio, Hibernate non può stabilire se è null o se è valorizzato senza caricarlo!

Quindi, se cee è annotato con optional=false allora viene applicato il lazy loading, altrimenti, se cee è annotato con optional=true il dato viene sempre caricato dal DB e il lazy loading è ignorato!

See more at:
http://www.bigsoft.co.uk/blog/index.php/2008/10/26/lazy-loading-one-to-one-relationships
http://www.insaneprogramming.be/?p=355
http://justonjava.blogspot.it/2010/09/lazy-one-to-one-and-one-to-many.html
Annunci

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...