0

当我在休眠中的服务器端查询中创建时

(em.getEntityManagerFactory().createEntityManager().createNativeQuery("select..."))

形成一些包含 java list hibernate return 的对象org.hibernate.collection.PersistentList

现在当我尝试发送这个对象我的java客户端他不知道这个

org.hibernate.collection.PersistentList

当我尝试反序列化时对象(并且我不想将此 hibernate.jar 添加到客户端)。

有没有办法让休眠返回普通的java列表?现在我将此列表替换为普通的 java 列表或 java Arraylist,然后将此对象发送到客户端。(Json 不是一个选项)。

提前致谢。

4

1 回答 1

0

通常休眠对象是不可序列化的。如果要将它们发送给客户端,则必须将它们的数据复制到数据持有者对象中(或者您可以为您的客户端使用特殊的软件包)。这不仅适用于列表实现,也适用于单个 pojo,并且延迟加载通常在客户端也不起作用。

您已经以正确的方式进行操作,将列表的元素复制到客户端的新列表中。与从数据库读取数据所需的时间相比,这只需要非常少的时间。

(我不知道你在客户端使用的是哪个软件。如果是 GWT,在这里你可以找到一个很好的 hibernate 集成文档。但可能你没有使用 GWT,因为 GWT 有更大的障碍hibernate 集成不仅仅是 PersistentList。)

于 2012-05-03T08:38:54.950 回答