【问题标题】:Can I serialize a hibernate session and then deserialize it back to get the session object?我可以序列化休眠会话,然后将其反序列化以获取会话对象吗?
【发布时间】:2016-03-11 16:56:53
【问题描述】:

我需要一个功能,如果她愿意,用户可以取消正在运行的查询,所以我想我会序列化休眠会话,然后将其反序列化以取消该特定查询。

所以我做了类似的事情:

  1. 序列化并在数据库中设置。
  2. 取回,然后调用 session.cancelQuery()

下面是我使用的代码:

ByteArrayInputStream bis = new ByteArrayInputStream(byteArray);
ObjectInput in = new ObjectInputStream(bis);
Object o = in.readObject();
Session ss = (Session) o;

但这在 readObject() 给了我一个例外:

java.io.InvalidObjectException: could not resolve session factory during session deserialization [uuid=95d6a048-677b-42f0-9b9f-7e62fd68b533, name=null]

所以我想知道,是否甚至可以序列化和反序列化休眠会话对象。

编辑: 嗯,我也找到了this,但不确定这是否正确!

【问题讨论】:

  • 我真的不明白你想要达到什么目的。您真的要将数据库会话存储在数据库中吗?
  • @vojta 是的,我想将序列化的会话对象存储在数据库中,然后将其反序列化回会话对象。

标签: java hibernate session serialization


【解决方案1】:

不可能使用休眠会话来获得与数据库的物理连接,这意味着涉及网络层。它使用套接字、网络堆栈、底层硬件——所有这些都是系统特定的,不受 JVM 管理。

序列化只有在处理数据时才有用。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2014-12-12
  • 1970-01-01
  • 2015-03-31
  • 1970-01-01
  • 2013-10-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多