/**
  * {@code query} 에 저장되어 있는 검색 조건을 만족하면서 {@code labelId} 에 해당되는 라벨을 모두 가지고 있는 객체들의 ID를 찾는다. 찾아진 ID
  * 들은 {@code Expr.in} 으로 반환되며, 찾은 ID가 없을 경우 성립 불가능한 Expression 이 반환된다.
  *
  * @param query query
  * @param labelIds 검색할 라벨 ID
  * @return 검색 조건에 추가되어야 할 {@link Expression}
  */
 @SuppressWarnings("unchecked")
 public static Expression createLabelSearchExpression(
     final Query<? extends LabelOwner> query, final Set<Long> labelIds) {
   List<Object> ids = findIds((Query<LabelOwner>) query, labelIds);
   if (ids.isEmpty()) {
     return Expr.isNull(FIELD_NAME_ID);
   } else {
     return Expr.in(FIELD_NAME_ID, ids);
   }
 }