J'ai créé 3 tables dans ma base de données et y ai placé des données. Les 3 tables ont toutes des clés étrangères qui les joignent. Voici les classes de table et les mappings. Quand je lance la requête listée à la fin, j'obtiens IList <> des objets et ils ont les données des 3 tables. Cependant, ma requête HQL est uniquement à partir du tableau le plus haut. Comment puis-je récupérer seulement les résultats de la plus haute table?Obtenir des données de toutes les tables au lieu d'une seule avec la requête HQL qui ne doit recevoir que les données d'une table
Ce sont mes 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);
}
}
Et voici mon code HQL:
IQuery q = session.CreateQuery("from Technology T");
IList technologies = q.List();
Merci à vous deux. Vos réponses m'ont aidé. Merci! –