2011-04-12 3 views
0

웹 응용 프로그램을 개발 중이며 docryl 프레임 워크를 사용하여 동시 요청 및 트랜잭션 및 쿼리 (헤드 및 행 레코드 삽입 또는 업데이트)를 관리 할 것입니다.Doctrine의 EntityManager를 세션 변수에 유지

웹 필수품에 대해 나는 여러 단계로 작업을 분할하려고 생각했다. 첫 번째 단계 : 사용자가 HeadTable 레코드를 삽입 할 수있는 페이지가 있고 그 후에 서버에 정보를 보내고 엔터티를 생성하고 저장한다. persist 함수를 가진 EntityManager에서.

두 번째 단계 : 사용자가 모든 행 테이블 레코드를 편집하고 삽입합니다. 이전과 같이 모든 작업이 완료되면 서버에 모든 데이터를 보내고 엔터티를 만들고 HeadTable 레코드에 연결합니다.

마지막 단계 : 사용자가 수행 한 작업을 모두 확인하면 EntityManager의 플러시 작업을 트리거하고 모든 단일 트랜잭션에서 DataBase에 모든 작업을 커밋합니다. 이 모든 단계를 유지하기 위해 EntityManager를 세션 변수에 넣고 플러시 작업 후에 제거합니다.

모두 괜찮아 보이지만 문제를 해결하는 올바른 방법인지 또는 더 좋은 방법이 있는지 알고 싶습니다.

답변

2

시도해 볼만한 것 같습니다.

그러나 엔티티 관리자를 여러 요청에 걸쳐 저장하지 않아도됩니다. 걱정할 데이터베이스 연결이있어 깨질 가능성이 있습니다.

그러나 일 수 있습니다. 단, 엔티티를 세션에 저장하기 만하면됩니다. 그것들을 entitymanager에서 detach() 한 다음, 다음 요청에서 다시 병합()하십시오.