管理每个套接字消息的数据库调用Spring Boot

问题描述

我已经安装了一个Spring Boot应用程序网络套接字服务器,并作为WEBRTC信令服务器运行。

该服务器必须基于通过不同客户端套接字从服务器/服务器轮流发送的消息,将一些数据记录到数据库中。

在使用超过2个对等方尝试从客户端进行电话会议,并使用带有断点的调试器运行信令时,方案已成功完成,数据库已按预期进行更新,并进行了电话会议。

但是,如果我在没有调试和断点的情况下运行服务器,则会收到sql错误

Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1; statement executed: HikariProxyPreparedStatement@1623454983 wrapping com.MysqL.cj.jdbc.ClientPreparedStatement: 

delete from my_table where my_table_id='601cbe2b-6af2-4e82-a69c-52b92d30686c'; nested exception is org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1; statement executed: HikariProxyPreparedStatement@1623454983 wrapping com.MysqL.cj.jdbc.ClientPreparedStatement: 

delete from my_table where my_table_id='601cbe2b-6af2-4e82-a69c-52b92d30686c'

我正在使用Spring JPA,并在填充实体数据及其所有嵌套列表和关系实体对象之后,在Web套接字收到的每条消息上调用save函数,以保留调用流的数据。

conferenceRepository.save(conference);

我认为该错误是由于查询随机顺序并发地在数据库上同时运行,而数据库中的数据仍然不存在,无法对之进行操作。

与在调试模式下一样,我花时间从一个断点移到另一个断点,这可以确保数据持久性。

但是我不确定这个问题。

是否存在一种最佳方法来应用并发数据库调用和更新,并确保数据被正确保存并持久存储在数据库中,以用于与并发Web套接字相关的消息?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...