每当我想保留任何实体时,都会执行以下代码。事情似乎工作正常,但我不明白它是如何工作的!
EntityManager em = getEntityManager();
EntityTransaction userTransaction = em.getTransaction();
userTransaction.begin();
em.persist( ent );
userTransaction.commit();
上面的 EntityManager 是整个应用程序共享的单个实例。开始交易后;我只是说em.persist(entity).. hibernate怎么知道它属于哪个事务!
假设我的应用程序上有 10 个并发用户,并且所有 10 个线程都在执行上述代码。因此,创建并提交了 10 个独立事务。但是所有 10 个不同的实体我都没有将它们与各自的交易相关联;那么JPA是如何解决的!
基于答案;我们有以下;我们是说每个线程都应该有一个 EntityManager 实例吗?这不会是服务器上的杀戮!我们应该汇集这些实例吗?它不等于再次实施某种连接池吗?