Jooq выберите pojos из многих отношений со многими

#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; }