ClassMaps are used when matching objects manually. In this case, you create a separate ClassMap for each object that indicates how this object maps to the database.
IAutoMappingOverrides are used when matching objects using AutoMapping. When using AutoMapping Fluent, NHibernate tries to automatically determine how objects should be mapped to the database, but sometimes automatically generated mappings are not quite what you wanted, so you need to override those parts that need to be configured. In this case, you create a display override for each object that needs to override automatic matching and override only those parts.
More information can be found on the Fluent NHibernate wiki:
source share