Come la profondità di stop Iscriviti a Hibernate in una query?
-
21-12-2019 - |
Domanda
Ciao ho questa classe:
public class A{
@ManyToOne
@JsonIgnore
private B b;
.....
}
public class B{
@OneToOne
@JsonIgnore
private C c;
.....
}
public class C{
.....
}
.
Ho un findById(id)
sulla mia classe A
e Hibernate esegue un join to B
Class, e il fatto di un altro join to C
Class.
Ma non ho bisogno di ottenere campi di classe C, quindi posso fare ??
Grazie
Soluzione 2
Ho risolto come suggerito:
Aggiungo @OneToOne(fetch = FetchType.LAZY)
perché il mio archiviato non è obbligatorio.
Altri suggerimenti
È possibile provare a impostare la proprietà Ibernate max_fetch_depth
su un valore corretto.
Dalla documentazione di Hibernate:
Imposta una massima profondità "per il recupero dell'istorità esterno per le associazioni single-eliminate (uno a uno, molti a uno).A 0 disabilita il recupero dell'istorità esterna predefinita. per esempio.Valori consigliati tra 0 e 3.
Ma tieni presente che questo influenzerà il tuo intero progetto.