NH filtering is a great feature.Fliters are applied as expected in a lot of
query but... not in all (we have one open bug about it).
Before implement some strange thing try "Filters".


2009/2/11 Germán Schuager <[email protected]>

> Hi,
> I have the following requirement:
>
> I need to introduce the concept of "Mode of execution" in my application:
> * Certain classes provide a Mode property.
> * The instances of this classes will be only visible when the current
> application Mode of execution is equal to its Mode property value.
> * New instances need to be asigned the current Mode of execution before
> persisting them.
>
> Currently my services call catRepository.GetAll() and this get traduced to
> hql "from Cat". I see 2 options here:
> * implementing the requirement in the application layer means that the
> services need to be changed to use catRepository.GetAllWithMode(mode)
> explicitly (lots of places to modify)
> * implementing the requirement in the domain/data layer in a generic way
> means that the GetAll() call would be traduce to hql "from Cat c where
> c.Mode = currentMode"
>
> I've been thinking in the following solution:
>
> public interface IModeAware
> {
>     Mode Mode { get; set; }
> }
>
> Using interceptors or event listeners I would asign the current Mode of
> execution to every implementor of IModeAware before persisting it.
> My problem is to query those classes... I've thought about using filters
> but I've found 2 minor issues:
> 1. I haven't found a way to enable/disable a filter at SessionFactory
> scope, it needs to be done for each Session that is created.
> 2. I need to define the same filter in the mapping of each class
> implementing IModoAware (is there any way to specify polymorphic filters?)
>
>
> To sum up, as I've never used these features before I'm looking for some
> advice about whether this approach will get me into trouble (that I'm not
> seeing) or if I should be ok.
>
>
> >
>


-- 
Fabio Maulo

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"nhusers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/nhusers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to