I was afraid of that it was to difficult if you are not in our business
logic :-)

I'm going to write a unit test and reproduce it.
It will make the discussion more easier.

But, in order to try to answer your question and to create some
clarification

* What is happening?
1 - We get the product.
2 - An entity 'sequence' linked (many-to-one) to this product is updated.
3 - Nothing is updated in product (also visible in sql profiler: No update
statement for product has been launched)

* What is audited?
Some properties of product. (described in previous posts)

* What is not audited?
Entity Sequence is not audited.

* What is the problem?
None of the properties of product have been changed. Where there is
modification flag, it also indicates nothing has been changed.

Tomorrow, i'll post a zip with a small project... try to reproduce...




2013/10/29 Kristof Riebbels <[email protected]>

> Something like this?
> What I see here: is that my valueobject is not in the table... That 's
> another issue.
>
> ----
>
> public class Product:RootEntity<Guid>
> {
>         private ProductInitiatorUnity productInitiatorUnity;
>
>         public virtual ProductInitiatorUnity ProductInitiatorUnity
>         {
>             get { return productInitiatorUnity ?? new
> ProductInitiatorUnity(); }
>         }
>
>         [Audited(WithModifiedFlag = true)]
>         public virtual string ArticleNumber { get; protected set; }
>
>         [Audited]
>         public virtual string LastChangedBy { get; protected set; }
>
>         [Audited]
>         public virtual DateTime LastChangedOn { get; protected set; }
>
>         [Audited(WithModifiedFlag = true)]
>         public virtual IParameter PickMethod { get; protected set; }
>
>         [Audited(WithModifiedFlag = true)]
>         public virtual IParameter ReceivingCode { get; protected set; }
> }
>
> public class ReceivingCode: Parameter
> {
>         [Audited]
>         public override string Code
>         {
>             get
>             {
>                 return base.Code;
>             }
>             protected set
>             {
>                 base.Code = value;
>             }
>         }
>         [Audited]
>         public override string LastChangedBy
>         {
>             get
>             {
>                 return base.LastChangedBy;
>             }
>             protected set
>             {
>                 base.LastChangedBy = value;
>             }
>         }
>         [Audited]
>         public override System.DateTime LastChangedOn
>         {
>             get
>             {
>                 return base.LastChangedOn;
>             }
>             protected set
>             {
>                 base.LastChangedOn = value;
>             }
>         }
> }
> public class PickMethod: Parameter
> {
>         [Audited]
>         public override string Code
>         {
>             get
>             {
>                 return base.Code;
>             }
>             protected set
>             {
>                 base.Code = value;
>             }
>         }
>         [Audited]
>         public override string LastChangedBy
>         {
>             get
>             {
>                 return base.LastChangedBy;
>             }
>             protected set
>             {
>                 base.LastChangedBy = value;
>             }
>         }
>         [Audited]
>         public override System.DateTime LastChangedOn
>         {
>             get
>             {
>                 return base.LastChangedOn;
>             }
>             protected set
>             {
>                 base.LastChangedOn = value;
>             }
>         }
> }
>
> public class ProductInitiatorUnity : ValueObject
>     {
>
>         [Audited(WithModifiedFlag = true)]
>         public virtual InitiatorUnity InitiatorUnity { get; protected set;
> }
>
>         [Audited(WithModifiedFlag = true)]
>         public virtual InitiatorUnity WmsUnity { get; protected set; }
>
>         [Audited(WithModifiedFlag = true)]
>         public virtual int InitiatorQuantity { get; protected set; }
>
>         [Audited(WithModifiedFlag = true)]
>         public virtual int WmsQuantity { get; protected set; }
>
>         protected internal ProductInitiatorUnity()
>         {
>         }
>
>         protected internal ProductInitiatorUnity(InitiatorUnity
> initiatorUnity, int initiatorQuantity, InitiatorUnity wmsUnity, int
> wmsQuantiy)
>         {
>             InitiatorUnity = initiatorUnity;
>             InitiatorQuantity = initiatorQuantity;
>             WmsUnity = wmsUnity;
>             WmsQuantity = wmsQuantiy;
>         }
>     }
>
> Product.hbm.xml
>
> <class name="Pdc.Erp.Domain.ProductManagement.Product" table="Product"
> dynamic-update="true" >
>     <cache usage="read-write" include="all"/>
> <id name="Id" column="id">
>   <generator class="guid.comb" />
>  </id>
>     <version name="Version" column="ver" type="Int64" />
>     <property name="ArticleNumber" column="article_number" length="20"
> not-null="true" unique-key="IX_Initiator_ArticleNumber" />
> <many-to-one name="ReceivingCode"
> class="Pdc.Erp.Domain.ProductManagement.Parameters.ReceivingCode,
> Pdc.Erp.Domain.Core" column="receiving_code_id" not-null="true"
> foreign-key="FK_Product_ReceivingCode"/>
> <many-to-one name="PickMethod"
> class="Pdc.Erp.Domain.ProductManagement.Parameters.PickMethod,
> Pdc.Erp.Domain.Core" column="pick_method_id" not-null="true"
> foreign-key="FK_Product_PickMethod"/>
>
>
>     <component name="ProductInitiatorUnity"
> class="Pdc.Erp.Domain.ProductManagement.ProductInitiatorUnity"
> access="nosetter.camelcase">
>       <many-to-one name="InitiatorUnity" column="initiator_unity_id"
> class="Pdc.Erp.Domain.ProductManagement.Parameters.InitiatorUnity"
> not-null="false" foreign-key="FK_Product_InitiatorUnity" />
>       <property name="InitiatorQuantity" column="initiator_unity_quantity"
> />
>       <many-to-one name="WmsUnity" column="initiator_unity_wms_id"
> class="Pdc.Erp.Domain.ProductManagement.Parameters.InitiatorUnity"
> not-null="false" foreign-key="FK_Product_InitiatorUnity_Wms" />
>       <property name="WmsQuantity" column="initiator_unity_wms_quantity" />
>
>     </component>
> <property name="LastChangedBy" column="modifier" length="100"
> not-null="true" />
>  <property name="LastChangedOn" column="modified" not-null="true" />
> </>
>
>
> Generated sql:
> CREATE TABLE [dbo].[Product_AUD](
> [id] [uniqueidentifier] NOT NULL,
> [REV] [int] NOT NULL,
>  [REVTYPE] [tinyint] NOT NULL,
> [article_number] [nvarchar](20) NULL,
> [ArticleNumber_MOD] [bit] NULL,
>  [modifier] [nvarchar](100) NULL,
> [modified] [datetime] NULL,
> [receiving_code_id] [uniqueidentifier] NULL,
>  [ReceivingCode_MOD] [bit] NULL,
> [pick_method_id] [uniqueidentifier] NULL,
> [PickMethod_MOD] [bit] NULL,
>  CONSTRAINT [PK_Product_AUD] PRIMARY KEY CLUSTERED
> (
> [id] ASC,
> [REV] ASC
> )WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY =
> OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [DATA]
> ) ON [DATA]
>
>
>
>
> 2013/10/29 Roger Kratz <[email protected]>
>
>> Can you show us some simple mapping + code?****
>>
>> ** **
>>
>> *From:* [email protected] [mailto:[email protected]] *On
>> Behalf Of *kriebb
>> *Sent:* den 29 oktober 2013 15:06
>> *To:* [email protected]
>> *Subject:* [nhusers] [Nhibernate.Envers] [1.6 GA] property auditing check
>> ****
>>
>> ** **
>>
>> Hi,****
>>
>> ** **
>>
>> We've setup the auditing on property level.****
>>
>> Everything works except some small stuff.****
>>
>> ** **
>>
>> The most important thing first:****
>>
>> ** **
>>
>> We are tracking on property bases,  also with the flag if the property
>> has changed. We are tracking now 7 property's.****
>>
>> ** **
>>
>> The thing is, we even got updates in the table, even if there is no
>> changes detected.****
>>
>> Another entity is updated tough.****
>>
>> ** **
>>
>> We won't want that information in our tables.****
>>
>> If nothing of those properties has changed, we are not interested in the
>> information.****
>>
>> ** **
>>
>> Any tips/hints where I can look for or can override this behavior?****
>>
>> ** **
>>
>> Thanks,****
>>
>> ** **
>>
>> ** **
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "nhusers" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>>
>> To post to this group, send email to [email protected].
>> Visit this group at http://groups.google.com/group/nhusers.
>> For more options, visit https://groups.google.com/groups/opt_out.****
>>
>>  --
>> You received this message because you are subscribed to a topic in the
>> Google Groups "nhusers" group.
>> To unsubscribe from this topic, visit
>> https://groups.google.com/d/topic/nhusers/lDQxk56fUh0/unsubscribe.
>> To unsubscribe from this group and all its topics, send an email to
>> [email protected].
>> To post to this group, send email to [email protected].
>> Visit this group at http://groups.google.com/group/nhusers.
>> For more options, visit https://groups.google.com/groups/opt_out.
>>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"nhusers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/nhusers.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to