That solution should be reimplemented in using NH2.1.0 natural-id.To be more
clear
http://fabiomaulo.blogspot.com/2009/02/nh210-new-generators.html
check the "select" generator

2009/2/16 Ed C. <[email protected]>

>
> Take a look at the solutions presented using the NHibernate Validator
> (from the NH Contrib project):
>
> http://forum.hibernate.org/viewtopic.php?p=2394663
>
> On Feb 15, 2:06 am, DJ <[email protected]> wrote:
> > I have a best-practice question. I'm using NHiberate 2.0.1 with Burrow
> > and ASP.NET.
> >
> > Say I have a User domain class that has a rule that no two users with
> > the same username may exist. To enforce this in the database I add a
> > unique constraint to the "username" column. I realize that I need to
> > enforce this in my business logic as well.
> >
> > What are some valid ways this can be handled? I've considered:
> >
> > 1. Injecting a DAO instance into User objects and having them call a
> > DAO method that checks for an existing User with the same username. I
> > assume a problem here is the off chance of a race condition where the
> > DAO checks for a duplicate, doesn't find one, and then before the
> > database update happens, someone else inserts a User with that name.
> >
> > 2. Catching the exception raised by NHiberate when the database
> > constraint is violated. My problem with this approach is since Burrow
> > is flushing the session at the end of the HTTP request, the only
> > option I think I have is to catch it in the global exception handler
> > for the web application and redirect to an error page. I won't be able
> > to give any specific error message on the page they were working with.
> > Also, some of my business logic is now expressed in my web application
> > not in my domain.
> >
> > In addition, is it normal/acceptable to enforce business logic that
> > requires looking at the database in a domain class itself like in
> > option 1?
> >
> > Thanks for any help, ideas, or shoves in the right direction.
> >
>


-- 
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