#java #jooq
#Ява #джук
Вопрос:
Я только начал изучать jooq, у меня есть эти 3 таблицы:
_______________ | USER_ROLES | | userid | | roleid | |_______________| ____/___ ______ | USERS | | ROLES | |___id___| |___id__|
Мне нужно выбрать все pojo ролей для пользователя с идентификатором
public Listlt;Rolesgt; getRolesForUser(Long userId) { Listlt;Rolesgt; roles = dsl.select .... where(User.id.eq(id)).fetch().... return roles; }
я не могу правильно погуглить, поэтому прошу прощения и прошу помощи.
Ответ №1:
Я предполагаю, что вы сгенерировали код для своей базы данных, тогда запрос будет выглядеть следующим образом:
public Listlt;Rolesgt; getRolesForUser(Long userId) { Listlt;Rolesgt; roles = dsl .select(ROLES.fields()) .from(ROLES) .join(USERS_ROLES).on(USER_ROLES.ROLEID.eq(ROLES.id) .where(USER_ROLES.USERID.eq(userId) .fetchInto(Roles.class); return roles; }