Sto riscontrando un problema in cui JPA sta tentando di caricare i dati con pigrizia quando non lo desidero. Essenzialmente ciò che sta accadendo è che sto usando un servizio per recuperare alcuni dati, e quando vado ad analizzare i dati in JSON, la libreria JSON sta attivando la sospensione per provare a caricare i dati con pigrizia. C'è un modo per fermare questo? Ho dato un esempio qui sotto.JPA2/Hibernate - Arresta il caricamento lento?
// Web Controller method
public String getEmployeesByQuery(String query) {
Gson gson = new Gson();
List<Employee> employees = employeeService.findEmployeesByQuery(query);
// Here is where the problem is occurring - the gson.toJSON() method is (I imagine)
// using my getters to format the JSON output, which is triggering hibernate to
// try and lazily load my data...
return gson.toJSON(employees);
}
E 'possibile impostare JPA/ibernazione di non cercare di pigramente caricare i dati?
AGGIORNAMENTO: Mi rendo conto che è possibile utilizzare FetchType.EAGER - ma cosa succede se non desidero caricare quei dati? Voglio solo interrompere l'ibernazione dal tentativo di recuperare più dati - ho già i dati che voglio. In questo momento ogni volta che provo ad accedere a un metodo get(), l'hibernate genera un errore "nessuna sessione o sessione è chiusa", il che ha senso perché la mia transazione è già stata trasferita dal mio servizio.
Grazie!
Potresti dire di usare di più sulla tua domanda: vuoi passare completamente dal caricamento pigro al caricamento ansioso o vuoi non caricare i dipendenti pigri in questo caso specifico e perché. – gabuzo
Il mio problema è che non voglio caricare pigramente i dati. Certo, potrei contrassegnarlo per il caricamento di EAGER - ma cosa succede se non mi interessa nemmeno di quei dati in questo momento? Per esempio, se ho un Dipendente che ha molte posizioni, ma non voglio quei dati perché è troppo dettagliato per la vista che voglio rendere, come faccio a dire a JPA di non provare a recuperare quei dati? –
Prova questo: http://stackoverflow.com/questions/4802887/gson-how-to-exclude-specific-fields-from-serialization-without-annotations –