code: public static String getCacheAnnotation(PackageImportAdder packageImportAdder, CacheConfigGetter... cacheConfigGetters) {
          if (cacheConfigGetters == null) {
              return "";
          }
  
          for (CacheConfigGetter cacheConfigGetter : cacheConfigGetters) {
              if (cacheConfigGetter != null) {
                  CacheConfig cacheConfig = cacheConfigGetter.getCacheConfig();
  
                  if (cacheConfig != null) {
                      if (cacheConfig.getUsage().isNone()) {
                          return ""; // cleaner than disabling the cache using @Cache (usage = NONE)
                      } else {
                          packageImportAdder.addImport("org.hibernate.annotations.Cache");
                          packageImportAdder.addImport("static org.hibernate.annotations.CacheConcurrencyStrategy." + cacheConfig.getUsage().name());
  
                          AttributeBuilder attr = new AttributeBuilder();
                          attr.add("usage = " + cacheConfig.getUsage().name());
  
                          if (cacheConfig.hasInclude()) {
                              attr.addString("include", cacheConfig.getInclude());
                          }
  
                          if (cacheConfig.hasRegion()) {
                              attr.addString("region", cacheConfig.getInclude());
                          }
  
                          return attr.bindAttributesTo("@Cache");
                      }
                  }
              }
          }
  
          return "";
      }
docs: ------------------------------------------