Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.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 从数据库查询的本地类是否导致竞争条件? 公共A类{ 字符串名=foo; } @服务 公共B级{ 私人最终储存库回购; 公开无效法{ A=repo.findByNamefoo; a、 name=Thread.currentThread.getName; repo.savea; } }_Java_Spring_Hibernate_Jpa - Fatal编程技术网

Java 从数据库查询的本地类是否导致竞争条件? 公共A类{ 字符串名=foo; } @服务 公共B级{ 私人最终储存库回购; 公开无效法{ A=repo.findByNamefoo; a、 name=Thread.currentThread.getName; repo.savea; } }

Java 从数据库查询的本地类是否导致竞争条件? 公共A类{ 字符串名=foo; } @服务 公共B级{ 私人最终储存库回购; 公开无效法{ A=repo.findByNamefoo; a、 name=Thread.currentThread.getName; repo.savea; } },java,spring,hibernate,jpa,Java,Spring,Hibernate,Jpa,假设两个线程同时执行了某个方法。尤其是在jpa hibernate实现中 我认为这是一个种族条件 第一个线程和第二个线程从名为foo的同一对象获得。如果我没有错,如果没有乐观锁,这种情况下会出现错误 乐观锁也会引发异常,所以我需要使用悲观锁才能正常工作吗 另外,如果我使用分布式内存缓存Redis和hazelcast打开二级缓存,会发生什么 这是一个物联网项目,数百万台设备正在调用此api和服务。 是否需要实现最终一致性?您正在使用多线程术语来描述数据库事务,这令人困惑。这不是竞争条件,它只是一个

假设两个线程同时执行了某个方法。尤其是在jpa hibernate实现中

我认为这是一个种族条件

第一个线程和第二个线程从名为foo的同一对象获得。如果我没有错,如果没有乐观锁,这种情况下会出现错误

乐观锁也会引发异常,所以我需要使用悲观锁才能正常工作吗

另外,如果我使用分布式内存缓存Redis和hazelcast打开二级缓存,会发生什么

这是一个物联网项目,数百万台设备正在调用此api和服务。
是否需要实现最终一致性?

您正在使用多线程术语来描述数据库事务,这令人困惑。这不是竞争条件,它只是一个事务,可能会因为乐观锁定而失败。然后您需要以某种方式处理它,例如重试失败的事务。您可以使用悲观锁定,但乐观锁定可能更好,除非事务经常失败。谢谢您的评论。如果我打开二级缓存以缓存查询如何?是否可以降低select查询性能?但它经常发生变化。我需要实现处理特定功能的缓存。而且它是微服务架构,所以我不能真正依赖于整个事务。即使我使用saga模式来控制事务。还有太多的事情要做:。我想我需要做一个负载测试。我可以用云计算机处理Jmeter。Aws或azure可能是猜测,可能,可能。时间会证明一切,这取决于你。