What's you mapping for EnversRevisionEntity?

________________________________
Från: [email protected] [[email protected]] för Patrick 
[[email protected]]
Skickat: den 31 mars 2012 01:42
Till: [email protected]
Ämne: Re: [nhusers] Envers with a PrimitiveType

I'll try and explain it a little better.  At the end of section 4 of the 
documentation, there is this sentence: "Having an "empty" revision entity - 
that is, with no additional properties except the two mandatory ones - is
also an easy way to change the names of the table and of the properties in the 
revisions table automatically generated by Envers."  To me, that says the 
default fields would be renamed, not just added to.  This is the default schema 
for the REVINFO table without a custom entity:

    create table Audit.REVINFO (
       REV INT IDENTITY NOT NULL,
       REVTSTMP DateTime null,
       primary key (REV)
    )

If I use the EnversRevisionEntity I posted earlier (which inherits from 
DefaultEnversEntity which already has the annotations you described), I would 
expect this schema:

    create table Audit.REVINFO (
        Id INT IDENTITY not null,
       UserFk INT null,
       RevisionDate DATETIME null,
       primary key (Id)
    )

but instead I get:

    create table Audit.REVINFO (
        Id INT not null,                         -- why isn't this the IDENTITY
       UserFk INT null,
       RevisionDate DATETIME null,
       REV INT IDENTITY NOT NULL, -- why is this still here
       REVTSTMP DateTime null,        -- and this one
       primary key (REV)                     -- and why isn't this Id
    )

I figure either the documentation is a little misleading or I'm doing something 
wrong.

-Patrick


On Friday, March 30, 2012 5:11:43 PM UTC-5, Roger wrote:
I'm not really sure I understand your problem but...

It's mandatory that the revision entity has a revision number and a revision 
timestamp. However, you can rename it to whatever you want though (both in 
domain model and in db schema).

It seems you're using attribute configuration? In that case, something like...

[RevisionEntity(typeof(EnversRevisionListener))]
public class EnversRevisionEntity
{
     [RevisionNumber]
     public virtual long RevisionId {get;set;}
     [RevisionTimestamp]
     public virtual DateTime TheTimeStamp {get;set;}
}


Or if you're using fluent cfg...

public class EnversRevisionEntity
{
public virtual long RevisionId {get;set;}
public virtual DateTime TheTimeStamp {get;set;}
}
fluentCfg.SetRevisionEntity<EnversRevisionEntity>(e => e.RevisionId, e => 
e.TheTimeStamp, new EnversRevisionListener());


/Roger

________________________________
Från: [email protected]<mailto:[email protected]> 
[[email protected]<mailto:[email protected]>] för Patrick
Skickat: den 30 mars 2012 17:07
Till: [email protected]<mailto:[email protected]>
Ämne: Re: [nhusers] Envers with a PrimitiveType

Thanks for helping me resolve that issue, but I'm having a separate problem now 
(maybe I need a new thread).  I've tried replacing the DefaultRevisionEntity 
with one of my own making but in the schema nHibernate is generating (and 
expecting) both the entities fields (Id & RevisionDate) and the defaults (REV & 
REVTSTMP).  Any thoughts?  Relevant code and schema are below.

    [RevisionEntity(typeof(EnversRevisionListener))]
    public class EnversRevisionEntity : DefaultRevisionEntity
    {
        public EnversRevisionEntity() { }

        public virtual User User { get; set; }
    }

    create table Audit.REVINFO (
        Id INT not null,
       UserFk INT null,
       RevisionDate DATETIME null,
       REV INT IDENTITY NOT NULL,
       REVTSTMP DateTime null,
       primary key (REV)
    )

Thanks,
Patrick


--
You received this message because you are subscribed to the Google Groups 
"nhusers" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/nhusers/-/olwpYMmefLkJ.
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.

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