当我使用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();
暂无答案!
目前还没有任何答案,快来回答吧!