gpt4 book ai didi

java - 在 Java 8 forEach 循环中使用 Spring Data JPA 存储库是线程安全的吗?

转载 作者:行者123 更新时间:2023-11-30 06:07:41 27 4
gpt4 key购买 nike

我可以在 Java 8 forEach 循环中使用 Spring Data JPA 存储库吗?它是线程安全的吗?

public interface MajorModOptRepository extends CrudRepository<MajorModOpt, Long> {
Set<MajorModOpt> findManyByManCodeAndModCode(String manCode, String modCode);
}

这是 forEach 循环:

@Component
public class MajorModOptsHelper {

@Autowired
private MajorModOptRepository majorModOptRepository;

public void setMajorOpts(@NonNull List<Vehicle> vehicles) {
vehicles.forEach(this::setMajorOpts);

}

// This method is called by above forEach
public void setMajorOpts(Vehicle vehicle) {
...
// Repository method is called here
Set<MajorModOptVO> knownOpts = majorModOptRepository.findManyByManCodeAndModCode(vehicle.getManCode(), vehicle.getModCode());
...
}
}

提前谢谢你。

最佳答案

这是踩救。不涉及多线程。

您唯一需要注意的是,不要为每个 findManyByManCodeAndModCode 打开一个新交易(除非你想要它)。解决这个问题最简单的方法是添加 @Transactional给你的setMajorOpts(@NonNull List<Vehicle> vehicles)方法。

关于java - 在 Java 8 forEach 循环中使用 Spring Data JPA 存储库是线程安全的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41026075/

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