Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.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 用于异步保存的ORM/库&;更新操作? 描述_Java_Spring_Hibernate_Jpa_Orm - Fatal编程技术网

Java 用于异步保存的ORM/库&;更新操作? 描述

Java 用于异步保存的ORM/库&;更新操作? 描述,java,spring,hibernate,jpa,orm,Java,Spring,Hibernate,Jpa,Orm,我在一个小型java游戏服务器上工作,我需要以异步方式保存和更新我的游戏实体,而不阻塞主线程。到目前为止,我一直在使用hibernate,但由于某些原因,hibernate不喜欢多线程的保存和更新操作,并抛出不同异常的dozend(请参阅我的最后10个问题……这些都与hibernate多线程相关) 我真的厌倦了那些冬眠的问题。我只是想要一些ORM或库,允许我以一种简单、异步的方式保存、加载和更新POJO。。。数周或数月内没有狩猎解决方案 问题: java游戏可以使用什么ORM或库进行非阻塞保存、

我在一个小型java游戏服务器上工作,我需要以异步方式保存和更新我的游戏实体,而不阻塞主线程。到目前为止,我一直在使用hibernate,但由于某些原因,hibernate不喜欢多线程的保存和更新操作,并抛出不同异常的dozend(请参阅我的最后10个问题……这些都与hibernate多线程相关)

我真的厌倦了那些冬眠的问题。我只是想要一些ORM或库,允许我以一种简单、异步的方式保存、加载和更新POJO。。。数周或数月内没有狩猎解决方案

问题: java游戏可以使用什么ORM或库进行非阻塞保存、更新和加载操作?我更喜欢SQL数据库,但nosql可能也可以正常工作


我很高兴能在这个主题上得到任何帮助:)

Hibernate对我来说很好,它在调度程序中执行。这与加载一个实体并在以后的很长一段时间内尝试在当前请求之外持久化更改是不一样的——这里还有很多不确定性需要处理,因为该实体不再与数据库同步


您不能收集某些类型的数据对象中的更改,然后在持久化时执行整个循环:从存储库加载、使用数据对象中的数据更新,然后持久化吗?应该没有任何问题。

对不起,图书馆推荐已关闭-topic@Michael从什么时候开始?我确实看到了很多类似的问题。。。不管是LIB、框架还是建议……哦,可能是在过去10年里。@Michael Word,为什么?物品#4谢谢!这可能会奏效,但它需要很多select语句。。。我想这叫做合并操作,对吗?我不确定这里的n+1问题,尤其是关系问题。是的,您可能会有更多的选择,但由于它们通常比更新便宜得多,我想说这不是什么问题。在收集数据之后,您知道要更新哪个实体,所以您可以使用repository.findAllById(listOfIds)一次捕获它们。然后合并更改并调用repository.saveAll(实体列表)。我不确定我是否会使用一些“神奇的”合并功能,你可能知道正在发生什么变化,所以你可以在一些HashMap中收集它们并逐个更新实体。关系是一个单独的主题,对吧。我总是使用惰性初始化,可能还会做额外的循环。也许这篇文章可以帮助你