Hibernate/JPA 세계에서 입력을받는 dataTables를 다루는 올바른 방법이 무엇인지 궁금합니다. 내가 말할 수있는 한, 다음 세 가지 선택 중 하나가 카드 전체가 붕괴되는 원인이되고 있지만 어느 것이 잘못되었는지는 알 수 없습니다. 시작과에서 데이터를 가져 오는 요청 범위의 관리 빈을 사용하여 데이터 테이블 ice/ace : dataTable을 JPA와 요청 범위 콩으로 통합하기
- 반자동 트랜잭션 (transaction)의 EntityManager 요청 범위의 EntityManager (URL에서 요청 범위 Bean에 ID를 설정하기위한 PrettyFaces 도움말)
- 뷰 범위 또는 세션 범위 bean 대신 요청 범위 bean으로 dataTable을 백업하는 중입니다.
나는 an ICEfaces dataTable demo using JPA을 볼 수 있지만 트랜잭션을 수동으로 관리하고 편집 구성 요소를 기본적으로 표시하지 않습니다. 객체를 편집 가능성을 위해 지명 한 행을 클릭하면 "저장"을 클릭하면 저장을 수동으로 트리거하기 전에 수동으로 새 EntityManager에 객체를 다시 연결합니다. 나는 click-to-edit 함수가 올바른 객체가 현재 세션에 재 부착되도록하는 방법을 알려주고 있고, 비슷한 것이 없으면 어떻게 살아갈 지 모르겠다.
새로운 ICEfaces 3.0에 대한 인상 : dataTable (née PrimeFaces 2.0 dataTable)은 View 또는 Session 범위 Bean에서 사용하기위한 것이지만 어떻게 보이지는 않습니다. 요구 A와 EntityManager A에서 DAO로부터 나오는 모델 객체가 있고 EntityManager B로 요청 B에 의해 수정되거나 페이징되는 경우 StaleObjectState 및/또는 LazyInitializationExceptions를 처리 할 수 있습니다.
Java EE 어떤 종류의 심오한 fu를 통해,하지만 나는 Tomcat 6에서 지금은 더 멋진 곳으로 업그레이드 할 수있는 사치품을 가지고 있지 않습니다 (장기적으로는 내 의도 임에도 불구하고). 우리는 Spring이나 Seam 또는 다른 멋진 것들이 무엇이든 사용하지 않을 것입니다. ICEfaces는 우리에게 이상한 요소입니다. 솔직히 너무 이상합니다.
요약하면 다음 중 어느 것이 잘못된 선택입니까? 요청 범위가있는 엔티티 관리자, 요청 범위가있는 dataTable 또는 dataTable 내부의 편집 구성 요소를 사용하고 있습니까? 아니면 정말로 여기 뭔가 잘못입니까?
감사 :
또한 다양한 요구 사항의 일부를 커버이 문서를 참조하십시오. 내 druthers가 있다면 우리는 글래스 피쉬로 업그레이 드 것입니다; 나는 몇몇 애플 리케이션을 성공적으로로드 할 수있게되었지만 TomEE 하에서 실제로 실행될만한 것을 얻지 못했다.나는 상황에 대한 당신의 분석에 완전히 동의한다, 나는 단지 내가 지금 원하는 것을하기 위해 조직을 강요하는 사치가 없다. 그래도 나는 당신의 충고를 적용하고 앞으로 나아갈 길을 찾을 수있을 것이라고 생각합니다. 다시 한 번 감사드립니다! –@DanielLyons TomEE에 대한 우리의 유익 (저는 TomEE에서 일하고 있습니다)에 대해 devee (at) openejb.apache.org에서 TomEE가 직면 한 문제에 대해 자세히 설명해 줄 수 있습니까? 우리는 젊은 서버이며 우리가 얻을 수있는 모든 피드백이 정말로 필요합니다. –
이번 주말에 자세한 내용을 알려 드리겠습니다. 나는 그것이 베타 버전이라는 이유로 어려움을 겪었다고 생각했다. –