[Seam Framework] EntityBean을 setter를 이용해서 변경만 했는데… 왜?

결과는 A와 B 모두 반영(Update) 된다. Commit(또는 Flush)시에 Managed상태에 있는 EntityBean은 모두 DB에 반영된다는걸 이제 알았다… 그렇다면 어떻게 해야 할까? 답은 A 만 Detached 상태로 만들어야 한다. 즉, 일단 EntityManager.close() 를 해야만 detached 된다. 그후 변경된 내용을 반영하려면 다음에 생성된 EntityManager.merge 로 반영한다. 실전에서는 EntityManager 를 2개 생성한 뒤, 하나는 Detached 상태를 유지를 EntityBean 을 검색한 뒤 close 하고, 다른 하나는 지속적으로 사용하며 Transaction 관리한다. 휴우~~ 이로서 EntityBean 은 해당 EntityManager 에 종속(?)되어 상태가 관리된다는걸 몸으로 체험했다…]]>

Related Posts