마스터 디테일 설정에서 엔티티 생성 및 편집을 처리하기 위해 사람들이 사용하는 전략이 궁금합니다. (우리의 응용 프로그램은 인터넷이 가능한 데스크탑 응용 프로그램입니다.)마스터 디테일에서 엔티티 생성/편집을 처리하는 방법
다음은 우리가 현재 처리하는 방법입니다. 편집해야하는 엔티티에 대한 팝업에서 양식이 생성되며이 개체의 사본을 제공합니다. 사용자가 "취소"버튼을 클릭하면 창을 닫고 객체를 완전히 무시합니다. 사용자가 "확인"버튼을 클릭하면 마스터보기에 알림이 보내지고 편집 된 엔티티가 수신됩니다. 그런 다음 originalEntity.copyFrom (modifiedEntity)을 사용하여 수정 된 엔터티의 속성을 원래 엔터티에 복사합니다. 새로운 엔티티를 생성하고자하는 경우, 빈 엔티티를 팝업에 전달합니다.이 엔티티는 사용자가 기존 엔티티 인 것처럼 편집 할 수 있습니다. 마스터보기는 수신하는 엔티티를 관리하는 콜렉션에 "삽입"또는 "갱신"할지 여부를 결정해야합니다.
나는 위의 워크 플로우에 대한 몇 가지 질문과 관찰이 : 엔티티의 사본의 생성을 처리해야
- ? (마스터 또는 세부 사항)
- 우리는 참조를 중단시킬 수있는 콜렉션의 엔티티를 대체해야하는 것을 방지하기 위해 copyFrom()을 사용합니다. 이 작업을 수행하는 더 좋은 방법이 있습니까?
- 새로운 엔티티는 -1의 ID (서버 계층/최대 절전 모드가 삽입 또는 업데이트를 구별하기 위해 사용)를 수신합니다. 이것은 id를 저장하기 전에 ID로 엔티티 (캐쉬 된)를 찾을 때 잠재적으로 문제를 일으킬 수 있습니다. 대신 새로운 엔티티마다 임시 고유 ID를 사용해야합니까?
누군가가 팁을 공유 할 수 있습니까? & 트릭이나 경험이 있습니까? 감사!
편집 : 나는이 질문에 대한 절대 잘못이나 정답이없는 알고, 그래서 나는 단지 그들이 마스터/세부 상황을 처리하는 방식에 대한 생각과 장점/단점을 공유하는 사람들을 찾고 있어요.
감사합니다. 편집 참조를 전달하는 문제는 엔터티의 원래 값을 저장하지 않고 변경 내용을 취소하거나 취소 할 수 없다는 것입니다. –
나는 뭔가를 놓친 것 같아. 명확히하기 위해 마스터 목록에 dirty/clean과 같은 다른 주를 보유하고 있다고 말하고 있습니까? 세부 정보 창에서 마스터의 항목을 추가 및 편집하고 세부 정보 창에서 확인을 클릭 한 다음 마스터 창에서 일부 컨트롤을 사용하여 변경 내용을 커밋하거나 롤백해야합니까? –
귀하의 데이터 개체가 귀하의 예제에서 명확하지 않은 방식으로 양식에 바인딩되어 있습니까? 나는 당신이 당신의 .set 메소드를 어디에 호출하는지 궁금 할 뿐이다. 나는 Kevin과 같은 라인을 생각하고있다. –