Ну, вы можете выставить свойства, которые отфильтрованы на карте, например:
<bag name="shippedOrders" ... where="Status == 'Shipped'" >
<key column="CustomerId" />
<one-to-many class="Order" />
</bag>
Атрибут 'where' является произвольным SQL.
Теоретически у вас может быть два свойства Customer, Orders и ShippedOrders. Однако я должен сказать, что я не сделал этого, и я хотел бы проверить, как NH обрабатывает каскад в этом случае. В любом случае вам нужно будет позаботиться о добавлении / удалении новых элементов, чтобы они были добавлены / удалены правильно в обе коллекции.
Тот факт, что вы хотите это сделать, заставляет задуматься, является ли Order совокупным корнем. Это может быть меньше проблем в долгосрочной перспективе, если сделать это так:
orderRepository.GetOrders(int customerId, OrderStatus[] statuses)