我想批量从数据库中获取多个 Hibernate 映射对象。据我所知,Hibernate(或我知道的任何 Java ORM)目前不支持这一点。所以我使用 RMI 编写了一个驱动程序来实现这个 API:
interface HibernateBatchDriver extends Remote
{
Serializable [] execute (String [] hqlQueries) throws RemoteException;
}
这个 API 的实现打开一个针对本地数据库的 Hibernate 会话,一个一个地发出查询,对结果进行批处理,然后将它们返回给调用者。Session
这样做的问题是,获取的对象在被发回后不再附加任何内容,因此稍后从这些对象访问延迟获取的字段最终会出现无会话错误。这个问题有解决方案吗?我不认为Session
对象是可序列化的,否则我也会通过网络发送它们。