gpt4 book ai didi

java - Spring JPA 多线程

转载 作者:太空宇宙 更新时间:2023-11-04 07:58:00 25 4
gpt4 key购买 nike

我们正在构建一个产品,因此从性能的角度来看我需要一些帮助。我们正在使用完整的 Spring(MVC、JPA、安全性等)

我们有一个要求,即对于特定流程,可以同时执行 100 条业务规则。可以有 n 个这样的流程和业务规则。

这些规则在执行时实际上从数据库中的表中获取记录,这些规则也将包含一些延迟初始化的实体。

我使用 Futures/Callables 来实现多线程目的,但问题是它无法加载 LAZY 变量。它给出了 Hibernate 加载异常,可能是 TRANSACTIONAL 中的一些问题没有分布在不同的线程中。

请告诉我是否还有其他方法可以处理?

最佳答案

如果某些实体/实体集合是延迟获取的,并且您在另一个线程中访问它,您将面临 LazyInitialization 异常,因为延迟加载的实体只能在事务内访问,并且事务不会跨线程。

您可以使用 DTO 模式,或者如果您跨线程共享实体,请在事务内调用其惰性初始化集合 getter,以便在事务本身内获取它们。

关于java - Spring JPA 多线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13312085/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com