2014-10-28 2 views
0

복잡한 결합 등을 사용하여 여러 다른 테이블에서 데이터를 가져온 화면을 만들어야합니다. UI에서 데이터를 가져 오는 서비스 호출은 하나뿐입니다. JSON에서 반환됩니다. 오라클의 단일 구조로 여러 쿼리에서 데이터를 반환

  1. 는 서비스 계층에서 여러 쿼리를 실행하고 개체를 채우고 다시 JSON 개체를 보내 내 마음에 온 방법이다.
  2. 임시 테이블을 만들고 원본 데이터가 업데이트 될 때 필요한 데이터를 채우고 위의 화면이 표시 될 때 임시 테이블을 쿼리합니다.

나를 위해 두 가지 접근 방식 모두 설득력이 없습니다. 나는 서비스 계층으로부터 다중 데이터베이스 호출을 원하거나이 목적을 위해 임시 테이블을 생성하지 않는다. 오히려 여러 쿼리를 실행하고 Java Object에 매핑 할 수있는 사용자 정의 구조를 반환하는 하나의 저장 프로 시저가 UI 레이어에 반환 될 것으로 생각하고 있습니다.

이것이 가능합니까?

+0

예 가능합니다. 당신이 원하는 것은 성능이 받아 들여질 수 있는지에 달려 있습니다. – Ben

+0

저장 프로 시저가 좋은 옵션입니다. DML 문이 포함되어 있지 않으면 함수를 사용하는 것이 더 낫습니다. 물론 그러한 규칙은 없습니다. – user75ponic

답변

1

당신은

  1. 여러 출력 sys_refcursor 매개 변수가있는 저장 프로 시저를 만들기 ... 서비스 계층, 사용자의 DB 층 및 DB 개발자의 능력에 따라 몇 가지 옵션이 있습니다; 커서를 통해 필요한 데이터를 서비스 계층에 전달하십시오. 서비스 레이어에서 JSON 객체를 만들고 GUI로 보내도록하십시오.
  2. 하나의 출력 sys_refcursor 매개 변수가있는 저장 프로 시저를 만듭니다.이 매개 변수에는 필요한 하부 구조가있는 중첩 된 refcursor 열이 포함됩니다. 서비스 레이어에서 JSON 객체를 만들고 GUI로 보내도록하십시오.
  3. XML로 완전한 복합 구조를 만드는 저장 프로 시저를 만듭니다. 서비스 레이어에서 XML을 JSON으로 변환하여 GUI로 보내도록하십시오.
  4. JSON (Oracle 12.1.0.2)에서 완전한 복합 구조를 빌드하고 GUI에 서비스 계층을 전달하는 저장 프로 시저를 만듭니다.
  5. XML로 복잡한 구조를 만드는보기를 만듭니다. 서비스 레이어가 필요한 특정 행에 대한 뷰를 쿼리하고 XML을 JSON으로 변환하도록하십시오. ...
+0

고맙습니다. 좋은 생각입니다. 이것들을 시험해보고 되돌려 보자. –

관련 문제