You can wrap the hibernate collections in a component which represents your enhanced lcollections:
Code:
<component name="Items" class="MyEnhancedList">
<bag name="Items" table="..." ...>
<key column="..."/>
<one-to-many class="MyItemClass"/>
</bag>
</component>
Items is a property in your collection implementation that contains the items:
Code:
public abstract class ListBase<T> : IList<T>, IList where T : class
{
private IList<T> items;
protected ListBase()
{
items = new List<T>();
}
public IList<T> Items
{
get { return items; }
protected set {items = value; }
}
...
}
The methods necessary for IList can simply be passed to the inner list. Any additional functionality can go in the wrapper class.