@Override public StringSubQuery unique(StringExpression projection) { return new StringSubQuery(uniqueProjection(projection)); }
@Override public SimpleSubQuery<Tuple> unique(Expression<?>... args) { return new SimpleSubQuery<Tuple>(Tuple.class, uniqueProjection(args)); }
@Override public BooleanSubQuery unique(Predicate projection) { return new BooleanSubQuery(uniqueProjection(projection)); }
@SuppressWarnings("unchecked") @Override public <RT extends Number & Comparable<?>> NumberSubQuery<RT> unique(NumberExpression<RT> projection) { return new NumberSubQuery<RT>((Class)projection.getType(), uniqueProjection(projection)); }
@SuppressWarnings("unchecked") @Override public <RT extends Comparable<?>> ComparableSubQuery<RT> unique(ComparableExpression<RT> projection) { return new ComparableSubQuery<RT>((Class)projection.getType(), uniqueProjection(projection)); }
@SuppressWarnings("unchecked") @Override public <RT> SimpleSubQuery<RT> unique(Expression<RT> projection) { return new SimpleSubQuery<RT>((Class)projection.getType(), uniqueProjection(projection)); }
@SuppressWarnings("unchecked") @Override public <RT extends Comparable<?>> DateTimeSubQuery<RT> unique(DateTimeExpression<RT> projection) { return new DateTimeSubQuery<RT>((Class)projection.getType(), uniqueProjection(projection)); }
@SuppressWarnings("unchecked") @Override public <RT extends Comparable<?>> TimeSubQuery<RT> unique(TimeExpression<RT> projection) { return new TimeSubQuery<RT>((Class)projection.getType(), uniqueProjection(projection)); }
@SuppressWarnings("unchecked") @Override public <RT extends Comparable<?>> DateSubQuery<RT> unique(DateExpression<RT> projection) { return new DateSubQuery<RT>((Class)projection.getType(), uniqueProjection(projection)); }