둘러보기 생략.
 

[RESTful Webservices] Databinding시 NULL 데이터 처리

RESTful Webservices 기반에서 Databinding을 수행할 경우 속성값이 NULL인 경우는 기본적으로 Binding 대상에서 제외됩니다.

다음은 이에 대한 예제입니다.

SELECT 절을 변경하여 QueryService를 통해 특정 쿼리문을 실행하였고, 결과는 Movie 객체에 담도록 하였습니다. 아래 쿼리문의 경우 MOVIE_ID, COUNTRY_CODE, RELEASE_DATE, RANK 정보만 Movie 객체에 담겨지게 되고, Movie 클래스에서는 매핑된 멤버 변수들에 대해 초기값을 부여하지 않고 있으므로 아래 쿼리문을 실행하였을 경우 나머지 변수값들은 NULL이 될 것입니다.

<query id="findMovieList">
   <statement>
      <![CDATA[
        SELECT movie.MOVIE_ID, movie.RELEASE_DATE, movie.RANK
        FROM MOVIE movie 
        ORDER BY movie.MOVIE_ID DESC
      ]]>
   </statement>
   <result class="anyframe.example.domain.Movie" />
</query>

위의 쿼리문 실행 결과로 전달된 Movie 객체를 RESTful Webservices를 통해 전달받았을 때 Outbound Message는 다음과 같았습니다. 즉, 조회한 칼럼 movieId, releaseDate, rank 정보만 Binding된 것을 확인하실 수 있습니다.

INFO: Outbound Message
---------------------------
Encoding: 
Headers: {}
Messages: 
Payload: 
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<movies>
<movie><movieId>sdfs</movieId><releaseDate>2010-03-08T00:00:00+09:00</releaseDate><rank>1</rank></movie>
<movie><movieId>MV-00009</movieId><releaseDate>1979-01-01T00:00:00+09:00</releaseDate><rank>7</rank></movie>
...
</movies>
--------------------------------------

이번에는 다음과 같이 SELECT 절의 조회 칼럼을 추가하였습니다.

<query id="findMovieList">
   <statement>
      <![CDATA[
        SELECT movie.MOVIE_ID, movie.TITLE, movie.DIRECTOR, movie.RELEASE_DATE, movie.RANK
        FROM MOVIE movie 
        ORDER BY movie.MOVIE_ID DESC
      ]]>
   </statement>
   <result class="anyframe.example.domain.Movie" />
</query>

위의 쿼리문 실행 결과 전달된 Movie 객체를 RESTful Webservices를 통해 전달받았을 때 Outbound Message는 다음과 같았습니다. 즉, 조회한 칼럼 movieId, releaseDate, rank 정보 외에도 title, director 정보도 함께 Binding된 것을 확인하실 수 있습니다.

INFO: Outbound Message
---------------------------
Encoding: 
Headers: {}
Messages: 
Payload: 
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<movies>
<movie><movieId>sdfs</movieId><title>sdfsd</title><director>sdfsdf</director><releaseDate>2010-03-08T00:00:00+09:00</releaseDate><rank>1</rank></movie>
<movie><movieId>MV-00009</movieId><title>The Godfather</title><director>Francis Fo</director><releaseDate>1979-01-01T00:00:00+09:00</releaseDate><rank>7</rank></movie>
...
</movies>
--------------------------------------