java.lang.UnsupportedOperationException:尝试序列化java.lang.Class:org.hibernate.proxy.HibernateProxy

时间:2013-05-15 22:24:47

标签: json hibernate java-ee jax-rs

我正在使用带有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?

我不知道异常的根本原因

2 个答案:

答案 0 :(得分:7)

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

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

或者,您可以急切地获取延迟数据。

答案 1 :(得分: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 ;