code: @Override
      public void visitClassContext(ClassContext clsContext) {
          try {
              cls = clsContext.getJavaClass();
              catalogClass(cls);
  
              if (isEntity) {
                  if (hasHCEquals && hasId && hasGeneratedValue) {
                      bugReporter.reportBug(new BugInstance(this, BugType.JPAI_HC_EQUALS_ON_MANAGED_ENTITY.name(), LOW_PRIORITY).addClass(cls));
                  }
                  if (hasEagerOneToMany && !hasFetch) {
                      bugReporter.reportBug(new BugInstance(this, BugType.JPAI_INEFFICIENT_EAGER_FETCH.name(), LOW_PRIORITY).addClass(cls));
                  }
              }
  
              if (!transactionalMethods.isEmpty()) {
                  stack = new OpcodeStack();
                  super.visitClassContext(clsContext);
              }
          } finally {
              transactionalMethods = null;
              stack = null;
          }
      }
docs: implements the visitor to find @Entity classes that have both generated @Ids and have implemented hashCode/equals. Also looks for eager one to many join
  fetches as that leads to 1+n queries.
  
  @param clsContext
  the context object of the currently parsed class