JOOQ с MySQL: Как получить вложенные данные на один ко многим?MySql

Форум по Mysql
Ответить
Anonymous
 JOOQ с MySQL: Как получить вложенные данные на один ко многим?

Сообщение Anonymous »

Я работаю над вопросом Jooq для MySQL, где мне нужно получить одну строку из основной таблицы вместе с данными, связанными с одним ко многим из двух других таблиц. Моя схема состоит из трех таблиц:

[*] table_a: содержит первичный ключ (user_id) и имя поля ( плюс другие настройки).
[*] table_b: содержит связанные значения (например, b_value ) и внешний ключ user_id .
table_c: содержит связанные значения (например, C_VALUE ) и внешний ключ user_id .

мне нужно составить результат в следующие pojos: < /p>
class APojo {
public Int userId;
public List listOfBValue;
public List listOfCValue;
}
< /code>
Ожидаемый вывод JSON был бы чем-то вроде: < /p>
{
"userId": 1,
"listOfBValue": [ "bvalue1", "bvalue2" ],
"listOfCValue": [ "cvalue1" ]
}
< /code>
Первоначально я попытался написать запрос, вдохновленный этим ответом: < /p>
dslContext.select(
TABLE_A.USER_ID,
array(
dslContext.select(row(TABLE_B.B_VALUE))
.from(TABLE_B)
.where(TABLE_B.USER_ID.eq(userId))
),
array(
dslContext.select(row(TABLE_C.C_VALUE))
.from(TABLE_C)
.where(TABLE_C.USER_ID.eq(userId))
)
)
.from(TABLE_A)
.where(TABLE_A.USER_ID.eq(userId))
.fetchOne()
< /code>
Однако этот запрос бросает исключение «Jooq; Bad SQL Grammar». Как это исправить?


Подробнее здесь: https://stackoverflow.com/questions/794 ... ested-data
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «MySql»