I have created 3 tables in my database and put data into them. The 3
tables all have foreign keys joining them together. Below are the
table classes and there mappings. When I run the query listed at the
end I get IList<> of the objects and they have the data from all 3
tables. However, my HQL query is only from the top most table. How can
I get back just the results from the top most table?

These are my classes:

public class Technology
    {
        public virtual int Id { get; private set; }
        public virtual string Name { get; set; }
        public virtual int SortOrder { get; set; }
        public virtual string Abbreviation { get; set; }
        public virtual IList<TechnologyDescription>
TechnologyDescriptions { get; private set; }

        public Technology()
        {
            TechnologyDescriptions = new List<TechnologyDescription>
();
        }

        public virtual void AddTechnologyDescription
(TechnologyDescription technologyDescription)
        {
            technologyDescription.Technology = this;
            TechnologyDescriptions.Add(technologyDescription);
        }
    }

public class TechnologyDescription
{
    public virtual int Id { get; private set; }
    public virtual Technology Technology { get; set; }
    public virtual string Description { get; set; }
    public virtual DescriptionType DescriptionType { get; set; }
}

public class DescriptionType
{
    public virtual int Id {get; private set;}
    public virtual string Type { get; set; }
}

These are my mapping objects:

public class TechnologyMap : ClassMap<Technology>
{
    public TechnologyMap()
    {
        Id(x => x.Id);
        Map(x => x.Name);
        Map(x => x.SortOrder);
        Map(x => x.Abbreviation);
        HasMany(x => x.TechnologyDescriptions)
                .Inverse()
                .Cascade.All();
    }
}

public class TechnologyDescriptionMap  :
ClassMap<TechnologyDescription>
{
    public TechnologyDescriptionMap()
    {
        Id(x => x.Id);
        References(x => x.Technology);
        Map(x => x.Description);
        References(x => x.DescriptionType);
    }
}

public class DescriptionTypeMap : ClassMap<DescriptionType>
{
    public DescriptionTypeMap()
    {
        Id(x => x.Id);
        Map(x => x.Type);
    }
}

And this is my HQL code:

IQuery q = session.CreateQuery("from Technology T");
IList technologies = q.List();

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