Reputation: 5919
I have a simple Java SE Application which uses JPA(EclipseLink). By default I have one 'default' connection pool which allows up to 32 connections.
Suppose I do something like this:
EntityManagerFactory emFactory = Persistence.createEntityManagerFactory("myPU");
//read
EntityManager em = emFactory.createEntityManager();
TypedQuery<Entity.class> q = em.createQuery("Select e from Entity e", Entity.class);
List<Entity> entities = q.getResultList();
em.close();
//write
em = emFactory.createEntityManager();
Entity e = new Entity();
em.getTransaction().begin();
em.persist(e);
em.getTransaction().commit();
em.close();
Upvotes: 2
Views: 1996
Reputation: 4232
Well, i do not know how the EclipseLink works, but in Hibernate you can set connection release strategy to release connection to pool after: statement, transaction, entity_close, auto. link But i can't find such a thing for EclipseLink so I assume EclipseLink release connection strategy is after entity_close.
So, it would be like this:
EntityManagerFactory emFactory = Persistence.createEntityManagerFactory("myPU");
//read
EntityManager em = emFactory.createEntityManager();
TypedQuery<Entity.class> q = em.createQuery("Select e from Entity e", Entity.class);
List<Entity> entities = q.getResultList(); << TAKE FROM POOL
em.close(); << RELEASE
//write
em = emFactory.createEntityManager();
Entity e = new Entity();
em.getTransaction().begin(); << TAKE FROM POOL
em.persist(e);
em.getTransaction().commit();
em.close(); << RELEASE
Upvotes: 2