Есть ли способ получить динамически получить все имена полей таблицы, используя jOOQ? - PullRequest
0 голосов
/ 18 февраля 2019

Сгенерированный кодовый код TableImpl s содержит методы, такие как getIndexes, getPrimaryKey, getKeys.

Не существует метода для получения всех полей таблицы (TableField), таких как getFields.

Есть ли другой способ программно проверить, например, является ли name фактическим столбцом таблицы?

Ответы [ 2 ]

0 голосов
/ 19 февраля 2019

Не существует метода для получения всех полей таблицы (TableField), таких как getFields.

В силу исторических причин именования метод называется Table.fields() notTable.getFields().

Есть ли другой способ программной проверки, если, например, имя является фактическим столбцом таблицы?

wallek876 уже предоставил правильный ответэта часть .

0 голосов
/ 19 февраля 2019

Вы можете попытаться получить поле по его имени и проверить, действительно ли вы вернули его обратно

if (TableName.TABLENAME.field("name") != null) {
    System.out.println("The field is there: " + TableName.TABLENAME.field("name").getName());
} else {
    System.out.println("There is no field with that name.");
}

Также можно получить все поля, используя метод fieldsRow():

Row fields = TableName.TABLENAME.fieldsRow();

for (int i = 0; i < fields.size(); i++) {
    System.out.println(fields.field(i).getName());
}
...