2013-05-15 1 views
3

jee5/seam에서 jee6으로 업그레이드하는 프로젝트가 있습니다. 여기서 "deschere who"는 대부분의 기능이 통합되었으므로 이음새를 끊는 것이 좋습니다. jee6에. 하지만 나는 jee6에서 해결할 수없는 것 같아요.Seam을 jee6 with conversation으로 바꾸기

ConversationScope를 사용하는 마법사가 여러 개 있습니다. Seams FlushModeType.Manual을 사용하여 우리가 실제로 커밋하기를 원할 때까지 커밋 된 "더티"데이터를 피하기 위해 (각 페이지로드는 기본적으로 자체 트랜잭션을 가져 오지만 플러시 할 때까지 아무것도 쓰지 않기 때문에 대부분 커밋하지 않습니다. 데이터베이스의 상태를 변경하지 마십시오.

jee6에서 PersistenceContextType.EXTENDED를 사용하여 몇 가지 시도를했지만 seam처럼 데이터베이스에 플러시를 연기 할 수있는 방법을 찾지 못했지만 유일한 해결 방법은 분리 된 객체 또는 별도의보기 모델.

첨부 된 객체를 사용하여 작업하는 것이 정말 이해하기 쉽고 빠르게 개발하는 것을 좋아합니다.

대화에서 첨부 된 개체로 계속 작업 할 수있는 솔루션이 있습니까?

답변

2

Seam2의 열렬한 팬으로서 대화를 사용하여 멋진 앱을 작성했으며 플러시 모드가 설정된 대화 형 범위 엔티티 관리자가 수동 및 분리 된 개체로 설정되었습니다.

그러나 우리는이 패턴이 Seam 매뉴얼에 강하게 적용되고 Hibernate가 JPA 구현체 일 때까지 훌륭하게 작동 함에도 불구하고 근본적으로 손상되었음을 인정해야한다. 그 이유는 Mark Struberg의이 게시물에서 설명합니다. Is There A Way To Fix the JPA EntityManager?

따라서 대답은 아니오입니다. 대화에서 첨부 된 개체로 계속 작업 할 실제 솔루션이 없습니다. 분리 된 객체로 작업해야합니다.

대화 범위가있는 엔티티 관리자로 실험 한 다른 훌륭한 CDI 블로거가 있습니다 : Conversational CRUD. 첨부 된 객체로 작업을 계속한다면 독서의 가치가있을 것입니다.

관련 문제