private void addSupertypeFields(EntityType model, Map<String, EntityType> superTypes,
            Set<EntityType> handled) {
        if (handled.add(model)) {
            for (Supertype supertype : model.getSuperTypes()) {
                EntityType entityType = superTypes.get(supertype.getType().getFullName());
                if (entityType == null) {
                    if (supertype.getType().getPackageName().startsWith("java.")) {
                        // skip internal supertypes
                        continue;
                    }
                    // FIXME this misses the generics
                    Class<?> cl = supertype.getType().getJavaClass();
                    typeFactory.addEmbeddableType(cl);
                    entityType = createEntityType(cl, new HashMap<Class<?>, EntityType>());
                    addProperties(cl, entityType);

                }
                addSupertypeFields(entityType, superTypes, handled);
                supertype.setEntityType(entityType);
                model.include(supertype);
            }
        }
    }
Export the given classes

@param classes classes to be scanned
querydsl-codegen/src/main/java/com/querydsl/codegen/GenericExporter.java