Why do you need that override if you want to use native. If you are using
native, then there should be no override that sets the id value anywhere in
your code.

John Davidson

On Sat, Feb 26, 2011 at 12:27 PM, <[email protected]> wrote:

> I don't really want to manage the ID value in code. That's why i use the
> IdentifierGenerator with the
> overridden Generate method. So the ID is assigned from NH. I never touch
> the ID in my code.
>
> Am schrieb John Davidson <[email protected]>:
>
> > If you are managing the Id value in your code you should use a generator
> of "assigned" rather than "native".
> >
> > John Davidson
> >
> > On Sat, Feb 26, 2011 at 10:56 AM, [email protected]> wrote:
> >
> > It would be very nice, if someone could take a quick look at the
> described problem. Maybe i do something totally wrong, but i'm
> >
> > runing a little out of time and don't know what to do. Thanks
> >
> >
> > Am schrieb [email protected]:
> >
> >
> > > I have to correct the code form the last post it:
> > >
> > > public override object Generate(ISessionImplementor session, object
> obj)
> > > {
> > > if( obj is Domain.Base.PInfo )
> >
> > > {
> > > int nID = 0;
> > > if( int.TryParse((obj as Domain.Base.PInfo).StrIdent,out nID) )
> > > {
> > > return nID;
> > > }
> > > return null;
> >
> > > }
> > > return base.Generate(session,obj);
> > > }
> > >
> > > So i thought i give back the ID for the new entity. Not right?
> > > Ther inheritance from TableGenerator is because the DB has a TBL_IDEN
> Table, so i do this in
> >
> > > the Configure method:
> > >
> >
> > > public override void Configure(IType type, IDictionary parms, Dialect
> dialect)
> > > {
> > > string strTable = parms["target_table"];
> >
> > > string strColumn = parms["target_column"];
> > >
> > > parms["table"] = "TBL_IDEN";
> > > parms["column"] = "IDEN_CNT";
> >
> > > parms["where"] = "((IDEN_TABLE = '" + strTable + "') AND (IDEN_COL = '"
> + strColumn + "'))";
> > > base.Configure(type, parms, dialect);
> >
> > > }
> > >
> > > As for the mapping, the ID is mapped as "native" and StrIdent is a
> simple string property:
> > >
> > >
> > >
> > >
> > >
> > >
> >
> >
> >
> > > ...
> > >
> > > So, i hope this is enough information and anyone has a hint for me.
> > >
> > > Thanks
> > >
> > > Am schrieb [email protected]:
> >
> > > > I know and i don't do that :-)
> > > > What I do is, i use an own IdentifierGenerator inherited from
> TableGenerator. There i have to check the following:
> > > >
> > > > public override object Generate(ISessionImplementor session, object
> obj)
> >
> > > > {
> > > > if( obj is Thp5.Domain.Base.Patient.PatientInfo )
> > > > {
> > > > int nID = 0;
> > > > if( int.TryParse((obj as Domain.Base.PInfo).StrIdent,out nID) )
> >
> > > > {
> > > > return nID;
> > > > }
> > > > return null;
> > > > }
> > > > return base.Generate(session,obj);
> > > >
> > > > This is because the ID is calculated from the string ID (don't ask
> about it..it has to be this way)
> >
> > > >
> > > > Is this the wrong way?
> > > >
> > > > Am schrieb "José F. Romaniello" [email protected]>:
> > > > > you should not modify the POIDs of your entities instances
> >
> > > > >
> > > > > 2011/2/25 [email protected]>
> > > > >
> > > > > Hi all,
> >
> > > > >
> > > > > i get the following exception and don't know exactly what i should
> do about it:
> > > > >
> > > > > "identifier of an instance of Domain.Base.PInfo was altered from
> 102472 to 102472"
> >
> > > > >
> > > > >
> > > > > Any hint?
> > > > >
> > > > > Thanks
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > --
> > > > >
> >
> > > > > 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.
> > > > >
> > > > >
> > > > >
> >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > --
> > > > >
> > > > > 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.
> > > > >
> >
> >
> >
> >
> > --
> >
> > 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.
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > --
> >
> > 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.
> >
>
> --
> 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.
>

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