跨多个线程使用Repository类对象

时间:2017-12-20 10:25:30

标签: spring java-8 spring-data-jpa

到目前为止,我一直在单线程应用程序中使用类似下面的存储库对象。

@Service
class MyEntityService {
    @Autowired
    private MyEntityRepository repository;
}

存储库如下所示 -

import com.myorg.mypackage.entities.facebook.MyEntity;
import org.springframework.data.repository.CrudRepository;
public interface MyEntityRepository extends CrudRepository<MyEntity, String> {
    MyEntity findByFacebookPageId(String facebookPageId);
}

我计划通过Executor服务开始使用多个线程并同时写入数据库。我是否需要创建存储库的多个实例或单个实例?

1 个答案:

答案 0 :(得分:2)

一般来说,spring jpa是线程安全的。这一切都来自实体经理,该经理是从春天的实体经理工厂获得的。 Spring在每个线程中注入一个新的实体管理器,因此它使实体管理器看起来是线程安全的。

检查这个不错的article