EntityManager
オブジェクトがem
あり、次の擬似コードがあるとします。
@PersistenceContext(unitName = "myPU")
private EntityManager em;
public void runQuery()
{
for(int i=0; i<100; i++)
{ Query q = em.createNativeQuery(someQuery);
List list = q.getResultList();
//process result
...
...
}
}
entityManagerは基盤となるデータベース接続をどのように管理しますか?上記のコードに対して、接続セッションは1つだけですか、それとも100セッションですか?
私が尋ねている理由は、接続セッションごとに、クエリを実行する前に一時テーブルを作成する必要があるためです。私がやりたいことは次のようなものです:
for(int i=0; i<100; i++)
{ //first check if temp table does not exist
createTemptTable;
// then run the query
Query q = em.createNativeQuery(someQuery);
List list = q.getResultList();
//process result
...
...
}
しかし、テーブルを作成してクエリを実行するのと同じセッションにあることをどのように確認できますか?