325.4. 메시지 본문의 처리

SQL 구성 요소는 메시지 본문을 java.util.Iterator 유형의 개체로 변환한 다음 이 이터레이터를 사용하여 쿼리 매개 변수를 채우도록 시도합니다(각 쿼리 매개 변수는 끝점 URI에서 # 기호(또는 구성된 자리 표시자)로 표시됩니다. 메시지 본문이 배열 또는 컬렉션이 아닌 경우 변환은 본문 자체인 하나의 개체에 대해서만 반복되는 반복기를 만듭니다.If the message body is not an array or collection, the conversion results in an iterator that iterates over one object, which is the body itself.

예를 들어 메시지 본문이 java.util.List 의 인스턴스인 경우 목록의 첫 번째 항목이 SQL 쿼리에서 # 첫 번째 항목으로 대체되는 경우 목록의 두 번째 항목은 # 로 대체됩니다.

배치true 로 설정되면 인바운드 메시지 본문 해석이 약간 변경됩니다. 매개 변수의 반복기가 아닌 구성 요소는 매개 변수 반복기를 포함하는 반복기를 예상하고, 외부 반복기의 크기는 배치 크기를 결정합니다.

Camel 2.16 이후부터는 메시지 본문을 SQL 문으로 사용할 수 있는 useMessageBodyForSql 옵션을 사용할 수 있으며 SQL 매개 변수는 SqlConstants.SQL_PARAMETERS와 함께 헤더에 제공되어야 합니다. 이렇게 하면 SQL 구성 요소가 메시지 본문에서 온 SQL 쿼리가 더 동적일 수 있습니다.This allows the SQL component to work more dynamic as the SQL query is from the message body.