@Override public Stream<String> getUsersWithPreferences() { return dsl .selectDistinct(USER_ID) .from(DATA).naturalJoin(USERS) .fetch().stream().map(Record1::value1); }
@Override public Stream<String> getItemsWithPreferences() { return dsl .selectDistinct(ITEM_ID) .from(DATA).naturalJoin(ITEMS) .fetch().stream() .map(Record1::value1); }
@Override public Stream<IdPref<String>> getItemPreferences(String i) { return dsl .select(USER_ID, V) .from(DATA).naturalJoin(USERS).naturalJoin(ITEMS) .where(ITEM_ID.eq(i)) .fetch().stream() .map(r -> new IdPref<>(r.value1(), r.value2())); }
@Override public Stream<IdPref<String>> getUserPreferences(String u) { return dsl.select(ITEM_ID, V) .from(DATA).naturalJoin(USERS).naturalJoin(ITEMS) .where(USER_ID.eq(u)) .fetch().stream() .map(r -> new IdPref<>(r.value1(), r.value2())); }
@Override public int numItems(String u) { return dsl .selectCount() .from(DATA).naturalJoin(USERS) .where(USER_ID.eq(u)).fetchOne().value1(); }
@Override public int numUsers(String i) { return dsl .selectCount() .from(DATA).naturalJoin(ITEMS) .where(ITEM_ID.eq(i)) .fetchOne().value1(); }