code: public static <K extends SpecificRecord, S extends SpecificRecord> Dao<Map<String, S>> buildCompositeDaoWithEntityManager(
        HTablePool tablePool, String tableName, List<Class<S>> subEntityClasses,
        SchemaManager schemaManager) {
  
      List<EntityMapper<S>> entityMappers = new ArrayList<EntityMapper<S>>();
      for (Class<S> subEntityClass : subEntityClasses) {
        String entityName = getSchemaFromEntityClass(subEntityClass).getName();
        entityMappers.add(new VersionedAvroEntityMapper.Builder()
            .setSchemaManager(schemaManager).setTableName(tableName)
            .setEntityName(entityName).setSpecific(true)
            .<S> build());
      }
  
      return new SpecificMapCompositeAvroDao<S>(tablePool, tableName,
          entityMappers);
    }
docs: Create a CompositeDao, which will return SpecificRecord instances
  in a Map container.
  
  @param tablePool
  An HTablePool instance to use for connecting to HBase.
  @param tableName
  The table name of the managed schema.
  @param subEntityClasses
  The classes that make up the subentities.
  @param schemaManager
  The SchemaManager which will use to create the entity mapper that
  will power this dao.
  @return The CompositeDao instance.
  @throws SchemaNotFoundException