When having a custom revision entity, the schema generated is outside the control of envers so to speak. Simple NH Core mapping. So something seems strange here...
<<If so, I'll see if I can find a good spot for another test case.>> Please do. Thanks. Roger ________________________________ Från: [email protected] [[email protected]] för Patrick [[email protected]] Skickat: den 4 april 2012 00:43 Till: [email protected] Ämne: Re: [nhusers] Envers with a PrimitiveType Well, I'm using the ConventionModelMapper so no real configuration to speak of. I can still post it if you would like, but I was hoping I had just made some common mistake. I'm under a pretty tight deadline so I just added the required properties directly to my revision class and removed the inheritance from DefaultRevisionEntity. The schema is now what I expected. I really think it might be my fault so I'll see if I can reproduce the issue with a minimal project. If so, I'll see if I can find a good spot for another test case. -Patrick On Sunday, April 1, 2012 9:53:44 AM UTC-5, Roger wrote: What's you mapping for EnversRevisionEntity? ________________________________ Från: [email protected]<mailto:[email protected]> [[email protected]<mailto:[email protected]>] för Patrick Skickat: den 31 mars 2012 01:42 Till: [email protected]<mailto:[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]><mailto:[email protected]<mailto:[email protected]>> [[email protected]<mailto:[email protected]><mailto:[email protected]<mailto:[email protected]>>] för Patrick Skickat: den 30 mars 2012 17:07 Till: [email protected]<mailto:[email protected]><mailto:[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]<mailto:[email protected]>. To unsubscribe from this group, send email to [email protected]<mailto:nhusers%[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 view this discussion on the web visit https://groups.google.com/d/msg/nhusers/-/GfRqY11ujWYJ. 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.
