I don't know what you are doing but <property name="Version" type="System.Int64" not-null="true" /> <property name="OrderPriority" type="System.Int32" insert="true" update="true"/> sound as <version> <discriminator>
2009/7/30 Niclas Pehrsson <[email protected]> > > I know it sounds kind of awkward. > But I'm want to have a field in the database that's only is used for > searching, and when insert I want to be able set that value, the value > will tell which type of entity that it represent so I can use an sort > on it. Right now I have an interface that tells that this domainobject > is synchronizable, (I sync between to databases one way), on the > serverside. > > <class name="ISynchronizable" table="SynchronizableItems"> > <id name="Id" type="System.Guid"> > <generator class="assigned" /> > </id> > <property name="Version" type="System.Int64" not-null="true" /> > <property name="OrderPriority" type="System.Int32" insert="true" > update="true"/> > <joined-subclass name="Employee">..... > <joined-subclass name="Article">.... > <joined-subclass name="Organization">.... > </class> > </hibernate-mapping> > > In the IInterceptor when an transaction starts I found out which is > the current highest versionnumber and adds one in the > GetNewVersionNumber method > > public override void AfterTransactionBegin(ITransaction tx) > { > _currentVersionNumber = GetNewVersionNumber(); > base.AfterTransactionBegin(tx); > } > > Now in OnSave I set the version, but because my other question here on > http://groups.google.se/group/nhusers/browse_thread/thread/f7195afd957e88af > when I later retreive the objects they comes unordered so if the > entities has dependencies to each other in other words they need to be > saved in correct order to not cause a foreignkey exception I need them > to come in table order. > public override bool OnSave(object entity, object id, object[] > state, string[] propertyNames, IType[] types) > { > if (entity is ISynchronizable) > { > SetVersion(state, propertyNames, > _currentVersionNumber); > SetOrderPriority(entity, state, propertyNames); > return true; > } > } > private const string OrderPropertyName = "OrderPriority"; > private void SetOrderPriority(object entity, object[] objects, > string[] strings) > { > if(entity is Employee) > { > objects[GetPropertyIndexForPropertyName(strings, > OrderPropertyName)] = 1; > return; > } > if (entity is Article) > { > objects[GetPropertyIndexForPropertyName(strings, > OrderPropertyName)] = 2; > return; > } > if (entity is Organization) > { > objects[GetPropertyIndexForPropertyName(strings, > OrderPropertyName)] = 3; > return; > } > } > > > Now when having that said, I really do not need the OrderPriority > property in my domainmodel, only need to set it in the interceptor :) > but with your earlier answer I guess its not possible. > I guess it would be nice to have it if I would have an extra field > that tells me who have made the change but I only want it persisted in > the db and not it my model. > > On 29 Juli, 23:34, Fabio Maulo <[email protected]> wrote: > > Interesting concept.An insertable/*updatable* property but not in the > model, > > very interesting. > > Which is the name of the pattern ? > > > > 2009/7/29 Niclas Pehrsson <[email protected]> > > > > > > > > > > > > > is there any alternative what Im is out for, > > > > > use the field as select/insert/update but not in the model? > > > So I just can access i from IInterceptor :). > > > > > On Jul 29, 8:42 pm, Fabio Maulo <[email protected]> wrote: > > > > access="none" mean that the property does not involved in insert nor > > > update > > > > but only in where clauses of queries. > > > > > > 2009/7/29 Niclas Pehrsson <[email protected]> > > > > > > > I I have tested to inherit EmptyInterceptor and registered it with > the > > > > > sessionfactory. > > > > > In OnSave I want to add value to an property that has access="none" > > > > > but I can set the values in OnSave... > > > > > > > states[GetIndexForProperty("MyAccessNonePropertyName")] = false; > > > > > > > <property name="MyAccessNonePropertyName" type="System.Boolean" > > > > > access="none"/> > > > > > > > But it keeps getting the value null when inserting or updating, it > > > > > works fine if I have something else on access. Am I doing something > > > > > wrong? > > > > > > -- > > > > Fabio Maulo > > > > -- > > Fabio Maulo > > > -- 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 -~----------~----~----~----~------~----~------~--~---
