オブジェクトをデータベースに保存する EJB があります。私が見た例では、このデータが保存されると (EntityManager.persist)、EntityManager.flush(); が呼び出されます。なぜこれを行う必要があるのですか?保存しようとしているオブジェクトは添付されておらず、後でメソッドで使用されません。実際、保存するとメソッドが返され、リソースが解放されることが期待されます。(コード例では、remove 呼び出しでもこれを行います。)
if (somecondition) {
entityManager.persist(unAttachedEntity);
} else {
attachedEntityObject.setId(unAttachedEntity.getId());
}
entityManager.flush();