/** * {@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); } }