更改列表对象hibernate返回

时间:2012-05-03 00:04:00

标签: java hibernate

当我在hibernate

中创建我的服务器端查询时
(em.getEntityManagerFactory().createEntityManager().createNativeQuery("select..."))

形成一些包含java列表的对象 hibernate返回org.hibernate.collection.PersistentList

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

org.hibernate.collection.PersistentList
当我尝试反序列化时,

对象(我不想将这个hibernate.jar添加到客户端)。

有一种方法可以让hibernate返回普通的java列表吗? 现在我将每个查询的这个列表替换为普通的java列表或java Arraylist 然后我将此对象发送到客户端。 (Json不是一个选择)。

提前感谢。

1 个答案:

答案 0 :(得分:0)

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

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

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