Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我可以序列化hibernate会话,然后反序列化它以获取会话对象吗?_Java_Hibernate_Session_Serialization - Fatal编程技术网

Java 我可以序列化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

我需要一个功能,用户可以根据自己的喜好取消正在运行的查询,所以我想我应该序列化hibernate会话,然后反序列化它以取消特定的查询

所以我做了一些类似的事情:

  • 序列化并在数据库中设置它
  • 将其取回,然后调用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]
    
    所以我想知道,是否有可能序列化和反序列化hibernate会话对象

    编辑:
    我也发现了,但不确定这是否正确

    不可能使用hibernate会话来获取到数据库的物理连接,这意味着涉及到网络层。它使用一个套接字、一个网络堆栈和底层硬件,所有这些都是特定于系统的,不由JVM管理


    只有在处理数据时,序列化才是好的。

    我真的不明白您想要实现什么。你真的想将数据库会话存储在数据库中吗?@vojta是的,这是我想将序列化的会话对象存储在数据库中,然后将其反序列化回会话对象。如果有,请提供一个源:)?以便我能读到更多关于它的信息。什么源?Socket按设计是操作系统级的解释,而不是JVM属性。此外,资源不能序列化,数据也可以被序列化。这就是序列化的目的。一个简单的谷歌搜索将帮助你。同时看看这些。