Spring Data(JPA)存储库是否是线程安全的? (又名SimpleJpaRepository线程安全) [英] Is a Spring Data (JPA) Repository thread-safe? (aka is SimpleJpaRepository thread safe)

查看:456
本文介绍了Spring Data(JPA)存储库是否是线程安全的? (又名SimpleJpaRepository线程安全)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用 Spring Data(JPA)存储库来处理CRUD样板。

I am using a Spring Data (JPA) repository to take care of CRUD boilerplate.

我定义了我的存储库接口,如下所示:

I define my repository interface like so:

import org.springframework.data.repository.CrudRepository;

public interface FooRepository extends CrudRepository<Foo, Long>
{
  public Foo findByXAndYAndZ(X x, Y y, Z z);
}

Spring然后自动神奇地生成我所述接口的实现。我们得到的是代理,但我相信最终我们会得到一个 org.springframework.data.jpa.repository.support.SimpleJpaRepository

Spring then auto-magically generates me an implementation of said interface. What we get back is a proxy, but I believe that eventually we get down to a org.springframework.data.jpa.repository.support.SimpleJpaRepository.

A JdkDynamicAopProxy 是线程安全的,如果基础目标类是线程安全的。因此问题是: SimpleJpaRepository 线程安全?

A JdkDynamicAopProxy is thread-safe if the underlying target class is thread-safe. The question therefore is: is SimpleJpaRepository thread safe?

推荐答案

一般来说,是。它假设一个托管的 EntityManager ,我们将从Spring的工厂类中获取(如果您使用Spring作为容器)或者作为CDI托管bean(通过 @Producer 方法)。

Generally, yes. It's assuming a managed EntityManager which we'll either obtain from Spring's factory classes (in case you're using Spring as container) or as a CDI managed bean (declared through an @Producer method).

这篇关于Spring Data(JPA)存储库是否是线程安全的? (又名SimpleJpaRepository线程安全)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆