There are some solutions, from easy to hard -
1. Remove the <set>
mappings, or create another entity without them.
2. Set all <set lazy="true">...</set>
the fetch will occur only on accessing these properties.
3. Create a DTO (data transfer object) entity, a lite version, and use to NHibernate.Projections
library to fetch properties selectively.
4. Set <set fetch="join">...</set>
to fetch all data in one joined query, this might duplicate your records, so be careful.
And in general, NH separating the queries is not necessarily bad, JOIN on big tables can cause much bigger performance hit. Your issues might not be a mapping issue, it might be DB or code issue.