Vary_ 2013-04-25 16:02
浏览 552
已采纳

@PersistenceContext 线程安全的疑问

在spring+jpa情况下,经常这么写service层或dao层

[code="java"]
public class BrandServiceDao implements BrandDao {

@PersistenceContext
protected EntityManager entityManager;

// business 

}
[/code]
一般service和dao都被是singleton 但这种情况下,
entityManager没有线程安全问题么
或者说这么证明不同线程拿到的entityManager是不同的实例对象

我自己做了下模拟,也许方式不对,拿到的entityManager(代理对象)的hashcode都是一样的
嗯 原模原样的输出是:
[code="java"]Shared EntityManager proxy for target factory [org.springframework.orm.jpa.LocalEntityManagerFactoryBean@1b64ef8][/code]
共享的entityManager代理?

  • 写回答

1条回答 默认 最新

  • jinnianshilongnian 2013-04-25 16:18
    关注

    entityManager 线程不安全的

    共享的entityManager代理?
    你猜对了 spring提供了EntityManager 的 代理 EntityManagerProxy

    SharedEntityManagerCreator来创建代理

    return (EntityManager) Proxy.newProxyInstance(
    (cl != null ? cl : SharedEntityManagerCreator.class.getClassLoader()),
    ifcs, new SharedEntityManagerInvocationHandler(emf, properties));

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)