2013-05-15 9 views
5

Używam Restful Web Service (implementacja Jersy) z aplikacją JSF i użyłem Json, aby uzyskać dane w następujący sposób :java.lang.UnsupportedOperationException: Próbowałem serializować java.lang.Class: org.hibernate.proxy.HibernateProxy

carObjectDao = new GenericDAO<carObject>(carObject.class); 
    List<carObject> allCars = carObjectDao.readAll(); 
    Gson gson = new Gson(); 
    String carString = gson.toJson(allCars); 
    System.err.println(carString); 
    return carString ; 

i uruchomić aplikację w trybie debugowania i allCars jest wypełniony danymi poprawnie, ale po to jest wyjątek:

java.lang.UnsupportedOperationException: Attempted to serialize java.lang.Class: org.hibernate.proxy.HibernateProxy. Forgot to register a type adapter? 

nie wiem przyczynę wyjątkiem

+0

Musisz usunąć proxy obiektów HibernateProxy, lub jeśli naprawdę nie potrzebujesz danych, po prostu ustaw em jako null. – Ziul

+0

czy mógłbyś wyjaśnić więcej, nie rozumiem –

Odpowiedz

5

Jest to znany problem: Could not serialize object cause of HibernateProxy

JSon nie może deserializować obiektów HibernateProxy, więc albo je usuń, albo usuń.

Lub, możesz chcieć pobrać leniwych danych.

+1

Jak je odblokować lub usunąć, czytam ten post, ale nie rozumiem –

+0

Pięść trzeba nierozpoznawać, jak działa leniwy inicjowanie, kiedy nie chcesz pobrać kolekcji lub załadować obiekt, przychodzi jako kolekcja/obiekt proxy proxy, musisz dowiedzieć się z obiektów allCars, która kolekcja/obiekty potomne przychodzi jako HibernateProxy zamiast danych rzeczywistych. – Ziul

+0

Po tym możesz zdecydować, co zrobić z em (usuń em lub napraw em). – Ziul

Powiązane problemy