[jOOQ/jOOQ#17202] IllegalAccessException when creating DSL.table(R...) from list of Kotlin generated TableRecords

This commit is contained in:
Lukas Eder 2024-09-06 14:02:49 +02:00
parent 99dd011913
commit 7ce79ccfbd
2 changed files with 3 additions and 2 deletions

View File

@ -43,6 +43,7 @@ import static org.jooq.impl.Keywords.K_TABLE;
import static org.jooq.impl.Keywords.K_UNNEST;
import static org.jooq.impl.Names.N_ARRAY_TABLE;
import static org.jooq.impl.Names.N_COLUMN_VALUE;
import static org.jooq.impl.Tools.getRecordQualifier;
import static org.jooq.impl.Tools.isEmpty;
import static org.jooq.impl.Tools.map;
@ -134,7 +135,7 @@ implements
if (Record.class.isAssignableFrom(arrayType)) {
try {
return new FieldsImpl<>(map(
((Record) arrayType.getDeclaredConstructor().newInstance()).fields(),
getRecordQualifier(arrayType).fields(),
f -> DSL.field(alias.append(f.getUnqualifiedName()), f.getDataType())
));
}

View File

@ -3948,7 +3948,7 @@ final class Tools {
static final RecordQualifier<?> getRecordQualifier(Class<?> t) {
try {
return ((QualifiedRecord<?>) t.getDeclaredConstructor().newInstance()).getQualifier();
return ((QualifiedRecord<?>) Reflect.accessible(t.getDeclaredConstructor()).newInstance()).getQualifier();
}
catch (Exception e) {
throw new IllegalArgumentException(e);