Java 我可以序列化hibernate会话,然后反序列化它以获取会话对象吗?
我需要一个功能,用户可以根据自己的喜好取消正在运行的查询,所以我想我应该序列化hibernate会话,然后反序列化它以取消特定的查询 所以我做了一些类似的事情:Java 我可以序列化hibernate会话,然后反序列化它以获取会话对象吗?,java,hibernate,session,serialization,Java,Hibernate,Session,Serialization,我需要一个功能,用户可以根据自己的喜好取消正在运行的查询,所以我想我应该序列化hibernate会话,然后反序列化它以取消特定的查询 所以我做了一些类似的事情: 序列化并在数据库中设置它 将其取回,然后调用session.cancelQuery() 下面是我使用的代码: ByteArrayInputStream bis = new ByteArrayInputStream(byteArray); ObjectInput in = new ObjectInputStream(bis); Objec
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]
所以我想知道,是否有可能序列化和反序列化hibernate会话对象
编辑:
我也发现了,但不确定这是否正确 不可能使用hibernate会话来获取到数据库的物理连接,这意味着涉及到网络层。它使用一个套接字、一个网络堆栈和底层硬件,所有这些都是特定于系统的,不由JVM管理
只有在处理数据时,序列化才是好的。我真的不明白您想要实现什么。你真的想将数据库会话存储在数据库中吗?@vojta是的,这是我想将序列化的会话对象存储在数据库中,然后将其反序列化回会话对象。如果有,请提供一个源:)?以便我能读到更多关于它的信息。什么源?Socket按设计是操作系统级的解释,而不是JVM属性。此外,资源不能序列化,数据也可以被序列化。这就是序列化的目的。一个简单的谷歌搜索将帮助你。同时看看这些。