public void initializeCompanyDescriptor() {

    MWTableDescriptor descriptor = getCompanyDescriptor();
    MWTable table = tableNamed("COMPANY");
    descriptor.setPrimaryTable(table);

    descriptor.getCachingPolicy().setCacheType(MWCachingPolicy.CACHE_TYPE_FULL);
    descriptor.getCachingPolicy().setCacheSize(100);

    // sequencing
    descriptor.setUsesSequencing(true);
    descriptor.setSequenceNumberName("SEQ");
    descriptor.setSequenceNumberTable(table);
    descriptor.setSequenceNumberColumn(table.columnNamed("ID"));

    // direct to field mapping
    addDirectMapping(descriptor, "id", table, "ID");
    addDirectMapping(descriptor, "name", table, "NAME");

    // 1-many mappings
    MWOneToManyMapping vehiclesMapping =
        descriptor.addOneToManyMapping(descriptor.getMWClass().attributeNamed("vehicles"));
    vehiclesMapping.setReferenceDescriptor(getVehicleDescriptor());
    vehiclesMapping.setReference(
        getVehicleDescriptor().getPrimaryTable().referenceNamed("VEHICLE_COMPANY"));
    vehiclesMapping.setPrivateOwned(true);
  }