如何在java套接字中持久化对象

ckocjqey  于 2021-08-25  发布在  Java
关注(0)|答案(0)|浏览(179)

当我使用java套接字时,在数据库中持久化数据时遇到问题。我会在下面告诉你。。。
调用此类以创建连接,当与客户端的连接完成时,调用侦听器

public Response connect(int port) throws IOException {

    this.port = port;

    serverSocket = new ServerSocket(this.port);     
    clientSocket = serverSocket.accept();

    this.listenClient();        
}

下面是一个简化的示例,说明了当客户端向数据库发送我需要保存的消息时,数据库的持久性应该如何工作,问题发生在这个侦听器方法中。

private void listenClient() throws IOException {

    BufferedReader in = new BufferedReader( new InputStreamReader( 
   clientSocket.getInputStream() ) );

    String line = in.readLine();

    while( this.running() && !serverSocket.isClosed() )
    {
        if (line != null) {

            String msgDecript = decryptData(line);

            Entity entity = new Entity()
            entity.setName(msgDecript);
            entityService.persist(entity);

            line = in.readLine();
        }
    }
}

当我试图在lister中持久化一个对象不起作用时,请注意我试图在lister中运行持久化,我不知道这是否会影响此问题。
如果我试图在类的其他任何地方保存这个相同的实体,persistence工作,只有在侦听器中持久性不工作,只有当我试图在侦听器中执行这个操作时,我无法保存,有人知道它可能是什么吗?
没有java端错误,持久化显然已完成,生成了实体id,请求也已完成,但数据库被卡住了一段时间,我无法打开数据库中的表,然后发布了超时错误。
如果我调用entitymanager并尝试保存,同样的问题也会发生

this.entityManager.persist(entity);
this.entityManager.flush();

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题