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