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

Reply via email to