Hi,

I'm trying to make an HQL query like this:

select a from Audit a
                        where
                            a.Website.id = :websiteId and
                            a.AuditVersion = (select
max(b.AuditVersion) from Audit b where
                                b.AuditVersion <= :version and
                                b.MasterEntity.GetType() =
a.MasterEntity.GetType() and
                                b.MasterEntity.id = a.MasterEntity.id)
                        group by
a.MasterEntity.GetType(),a.MasterEntity.id

I'm not sure how to get the TYPE of my MasterEntity field in the
query.  I tried to map that column to another field but this causes
other problems.  Obviously calling GetType() is not real (I just
guessed that) - but is there someway of doing this at all?

Here is the mapping (using fluent nhibernate):

public class AuditMap : ClassMap<Audit>
    {
        public AuditMap()
        {
            Id(x => x.AuditId)
                .Column("AuditId")
                .GeneratedBy.HiLo("HiLo", "Hi", "1000");
            Version(x => x.ConcurrencyVersion);
            References<Website>(x => x.Website)
                .Column("WebsiteId")
                .Not.Nullable()
                .Cascade.SaveUpdate();
            Map(x => x.Created);
            Map(x => x.IsTrunk);
            Map(x => x.IsLive);
            Map(x => x.IsActive);
            Map(x => x.AuditVersion);
            ReferencesAny<object>(x => x.MasterEntity)
                .EntityTypeColumn("MasterEntityType")
                .EntityIdentifierColumn("MasterEntityId")
                .AddMetaValue<WebpageMaster>("WebpageMaster")
                .IdentityType<int>()
                .Cascade.SaveUpdate();
            ReferencesAny<object>(x => x.Entity)
                .EntityTypeColumn("EntityType")
                .EntityIdentifierColumn("EntityAuditId")
                .AddMetaValue<Webpage>("Webpage")
                .IdentityType<int>()
                .Cascade.SaveUpdate();
        }
    }

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