6

我正在使用带有 JSF 应用程序的 Restful Web 服务(Jersy 实现)并使用 Json 来获取数据,如下所示:

    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 ;

我在调试模式下运行应用程序并且 allCars 正确填充了数据,但之后抛出异常:

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

我不知道异常的根本原因

4

2 回答 2

6

这是一个已知问题:Could not serialize object cause of HibernateProxy

JSon 无法反序列化 HibernateProxy 对象,因此您要么取消代理,要么删除它们。

或者,您可以急切地获取惰性数据。

于 2013-05-15T22:39:08.520 回答
0

尝试通过ObjectMapper解析为

    carObjectDao = new GenericDAO<carObject>(carObject.class);
    List<carObject> allCars = carObjectDao.readAll();
    String carString = new ObjectMapper().writeValueAsString(allCars);
    System.err.println(carString );
    return carString ;
于 2020-10-15T07:39:40.750 回答