sorry i didn't saw that it was the same number, that is weird. is a string? something like "1234 " is not equals to "1234"?
2011/2/28 <[email protected]> > Ah ok, that sounds good. But the user can not change the StrIdent. It is > generated by an other application and is unique. > But why says the exception "ID was altered from 1234 to 1234"? 1234 equals > 1234 so where is the modification? > Anyway, i changed it to assigned now. > > > Am schrieb "José F. Romaniello" <[email protected]>: > > If an user can change the StrIdent property of an already persisted > object, you will get the exception you shown on the first mail.If that your > case, you need to map the POID as assigned. And you can write your property > as follows: > > > > > > > > public string StrIdent {get; set;} > > > > > > public int Id { > > get { return int.Parse(StrIdent); } > > set { StrIdent = value.ToString(); } > > } > > > > > > > > Then in your mappings: > > > > > > > > name="Id"> > > > > class="assigned" /> > > > > > > > > > 2011/2/28 [email protected]> > > > > for 2) > > that's what i'm doing. I did override the NativeIdentifierGeneratorClass > Property and return > > there my Id generator. Therefore every id mapping is marked as "native". > > > > for 3) > > I do this now. But i really don't understand why the exception occurs > when using the > > > > id generator. I wanted to avoid the assigned id because of the need to > use save/update > > and i don't want this "logic" to assign the ID in the code of my entity > class. > > > > > > > > > > > > Am schrieb "José F. Romaniello" [email protected]>: > > > I'm with John on this one, you should: > > > > > > 1-remove all the strident thing in you custom id generator > > > > > > > > 2-use your id generator as default for every mapping (you can override > > > > > > the “native generator class" in a custom dialect and use native on > > > > > > every mapping) > > > > > > 3-for the table/class that uses strident, set assigned instead of > > > > > > > > native, and do the logic in the entity class. > > > > > > > > > > > > > > > > > > > > > > > > 2011/2/26, [email protected] [email protected]>: > > > > > > > > > As far as i understood all this, i have to use native, if i want to > provide > > > > > > > my own ID generation. And i need this because the DB uses a TBL_IDEN > for > > > > > > > ID's. > > > > > > > > > And in case of the PInfo Class there is no TBL_IDEN entry because the > ID > > > > > > > results from the StrIdent. So, since all the NH ID generators will > not work, > > > > > > > i have to use my own. > > > > > > > > > > > > > > > > > > > > > > > Am schrieb John Davidson [email protected]>: > > > > > > >> 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. > > > > > > > > > > > > > > -- > > > > > > > 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. > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > > Enviado desde mi dispositivo móvil > > > > > > > > > > > > -- > > > > > > 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. > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > >%2 > > -- > 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.
