当我在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不是一个选择)。
提前感谢。
答案 0 :(得分:0)
通常,hibernate对象不可序列化。如果要将它们发送到客户端,则必须将其数据复制到数据持有者对象中(或者您可以为客户端使用特殊的软件包)。这不仅适用于列表实现,也适用于单个pojos,延迟加载通常也不适用于客户端。
您已经以正确的方式执行此操作,您将列表的元素复制到客户端的新列表中。与从数据库中读取数据所需的时间相比,这只需要很短的时间。
(我不知道你在客户端使用哪个软件。如果是GWT,here你可以找到一个很好的hibernate集成文档。但是你可能没有使用GWT因为对于hibernate集成,GWT比仅使用PersistentList有更大的障碍。)