The only difference between version and my way is that version is not
dependent on the object/row version but if a object is changed and
saved it would't go from version 5 to 6 but it would look what has the
last object changed version and increment it by 1 so it could be from
5 to 17.

Yeah its kind of an discrimator that I can sort on when makes my
reqiest, can I have that even if I use joined subclasses?

On 30 Juli, 14:15, Fabio Maulo <[email protected]> wrote:
> 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/f7195afd95...
> > 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
-~----------~----~----~----~------~----~------~--~---

Reply via email to