Loading...
Spring Framework Reference Documentation 7.0.2의 Collection Selection의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
Selection은 source 컬렉션을 그 entry들로부터 선택하여 다른 컬렉션으로 변환할 수 있게 해 주는 강력한 expression language 기능입니다.
Selection은 .?[selectionExpression] syntax를 사용합니다. 이는 컬렉션을 필터링하고 원래 element들의 부분 집합을 포함하는 새로운 컬렉션을 반환합니다. 예를 들어, 다음 예에서 보이는 것처럼 selection을 사용하면 Serbian inventors의 리스트를 쉽게 얻을 수 있습니다:
1List<Inventor> list = (List<Inventor>) parser.parseExpression( 2 "members.?[nationality == 'Serbian']").getValue(societyContext);
1val list = parser.parseExpression( 2 "members.?[nationality == 'Serbian']").getValue(societyContext) as List<Inventor>
Selection은 배열과 java.lang.Iterable 또는 java.util.Map을 구현하는 모든 것에 대해 지원됩니다. 배열이나 Iterable의 경우 selection expression은 각 개별 element에 대해 평가됩니다. Map에 대해서는 selection expression이 각 map entry(Java 타입 Map.Entry의 객체)에 대해 평가됩니다. 각 map entry는 selection에서 사용하기 위해 프로퍼티로 접근 가능한 key와 value를 가집니다.
#map이라는 이름의 변수에 저장된 Map이 주어졌을 때, 다음 expression은 entry의 value가 27보다 작은 original map의 element들로 구성된 새로운 map을 반환합니다:
1Map newMap = parser.parseExpression("#map.?[value < 27]").getValue(Map.class);
1val newMap = parser.parseExpression("#map.?[value < 27]").getValue() as Map
선택된 모든 element를 반환하는 것 외에도, 첫 번째 element나 마지막 element만을 가져올 수도 있습니다. Selection expression과 일치하는 첫 번째 element를 얻으려면 syntax는 .^[selectionExpression]입니다. Selection expression과 일치하는 마지막 element를 얻으려면 syntax는 .$[selectionExpression]입니다.
Spring Expression Language는 컬렉션 selection에 대해서도 safe navigation을 지원합니다. 자세한 내용은 Safe Collection Selection and Projection 을 참조하십시오.
Safe Navigation Operator
Collection Projection