private static void extractColumnsAndEntityDependencies(
     final JpaDependencyDiagramModel dependencyModel,
     final Class<?> loadClass,
     final JpaClassModel classModel,
     final Map<String, Map<String, JpaDependencyType>> jpaDependencyCache,
     final boolean hasAnyPatterns,
     final String[] includePatterns,
     final String[] excludePatterns) {
   for (Field field : loadClass.getDeclaredFields()) {
     try {
       Class<?> fieldType = field.getType();
       if (UmlGeneratorUtility.isIncluded(
           fieldType.getName(), hasAnyPatterns, includePatterns, excludePatterns)) {
         // check for spring dependencies
         if (field.isAnnotationPresent(Column.class)) {
           extractColumn(classModel, field.getAnnotation(Column.class));
         } else if (field.isAnnotationPresent(OneToMany.class)) {
           for (Type type :
               ((ParameterizedType) field.getGenericType()).getActualTypeArguments()) {
             if (type instanceof Class) {
               updateDependencyCache(
                   dependencyModel,
                   jpaDependencyCache,
                   classModel,
                   ((Class<?>) type).getName(),
                   JpaDependencyType.ONE_TO_MANY);
             }
           }
         } else if (field.isAnnotationPresent(ManyToOne.class)) {
           updateDependencyCache(
               dependencyModel,
               jpaDependencyCache,
               classModel,
               fieldType.getName(),
               JpaDependencyType.MANY_TO_ONE);
         } else if (field.isAnnotationPresent(OneToOne.class)) {
           updateDependencyCache(
               dependencyModel,
               jpaDependencyCache,
               classModel,
               fieldType.getName(),
               JpaDependencyType.ONE_TO_ONE);
         } else if (field.isAnnotationPresent(ManyToMany.class)) {
           updateDependencyCache(
               dependencyModel,
               jpaDependencyCache,
               classModel,
               fieldType.getName(),
               JpaDependencyType.MANY_TO_MANY);
         } else if (field.isAnnotationPresent(Id.class)) {
           classModel.addIdColumn(field.getName());
         }
       }
     } catch (Exception e) {
       // no need to do anything
       continue;
     } catch (NoClassDefFoundError error) {
       // no need to do anything
       continue;
     }
   }
 }