in knights/openjpa-knight/src/main/java/org/apache/geronimo/arthur/knight/openjpa/OpenJPAExtension.java [318:333]
private Stream<ClassReflectionModel> extractFieldTypesForReflection(final Class<?> entity) {
try {
final Field pcFieldTypes = entity.getDeclaredField("pcFieldTypes");
pcFieldTypes.setAccessible(true);
final Object types = pcFieldTypes.get(null);
return Stream.of(Class[].class.cast(types))
.distinct() // todo: filter(it -> !it.isPrimitive())?
.map(type -> {
final ClassReflectionModel fieldType = new ClassReflectionModel();
fieldType.setName(type.getName());
return fieldType;
});
} catch (final Exception e) {
return Stream.empty();
}
}