Ok I am terrible at explaining but here goes: You know how you have counters
id columns (incremental identity). The version would be the incremental
identity for the specific primary-key and foreign-key. So for every insert
where the parent_id and the parent_version_id already exists it should
autoincrement so this time around it would be more of a conditional counter
I suppose.

On Thu, Nov 19, 2009 at 2:55 PM, Fabio Maulo <[email protected]> wrote:

> What mean "Version" (that is for optimistic-lock) in a no mutable entity ?
>
> 2009/11/19 Mikael Henriksson <[email protected]>
>
>> Ok the following works like a fucking charm (pardon the language) except
>> that since I only do inserts it does not update the version automatically
>> and I'd rather not leave that to whoever is writing the persistence service
>> ;)
>> Any suggestions to how I can intercept and automatically increment the
>> version where contact_id = ? and contact_version_id = ?. Do I need to use
>> the event subsystem for that? Or can I solve it further in the mapping?
>> Note: ( ReadOnly() means "mutable=false" which prohibits deletes and
>> updates.)
>>
>> public class ParentMap : ClassMap<Parent>
>> {
>>     public ParentMap()
>>     {
>>         Table("parent_def");
>>         Id(x => x.Id,"parent_id");
>>         Map(x => x.UID, "parent_uid").CustomSqlType("varchar").Length(40);
>>         Map(x => x.DeletedAt ,"dte_deleted").Nullable();
>>         Map(x => x.ModifiedAt, "dte_modified").Nullable();
>>         Map(x => x.CreatedAt, "dte_created").Nullable();
>>         Map(x => x.AutoUpdate, "auto_update").CustomSqlType("bit");
>>
>>         HasMany(x => x.ParentVersions)
>>             .KeyColumn("parent_id")
>>             .Inverse()
>>             .Cascade.All();
>>     }
>> }
>>  public class ParentVersionMap : ClassMap<ParentVersion>
>> {
>>     public ParentVersionMap()
>>     {
>>         Table("parent_version");
>>         *ReadOnly();*
>>
>>         Id(x => x.Id  ,"parent_version_id");
>>         Version(x => x.Version)
>>             .Column("parent_version")
>>             .Generated.Never();
>>         Map(x => x.ParentHash ,"parent_hash")
>>             .CustomSqlType("varchar")
>>             .Length(40);
>>         Map(x => x.DateCreated ,"dte_created");
>>         Map(x => x.UpdateAvailable, "update_available");
>>
>>         References(x => x.Parent, "parent_id")
>>             .ForeignKey("parent_id");
>>     }
>> }
>>
>>  --
>> 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]<nhusers%[email protected]>
>> .
>> For more options, visit this group at
>> http://groups.google.com/group/nhusers?hl=.
>>
>
>
>
> --
> 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]<nhusers%[email protected]>
> .
> For more options, visit this group at
> http://groups.google.com/group/nhusers?hl=.
>

--

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


Reply via email to