これが私の Fluent 構成の問題なのか、それとも私の思考のロジックの問題なのかはわかりません。
基本的に、Author と Borrower という 2 つの継承クラスを持つ Person クラスがあります (これはライブラリ システムです)。私が持っているマッピングはです。
public class PersonMap : ClassMap<Person>
{
public PersonMap()
{
Id(x => x.Id, "id");
Map(x => x.Name, "name");
// Subclasses
AddPart(new AuthorMap());
AddPart(new BorrowerMap());
}
}
public class AuthorMap : JoinedSubClassPart<Author>
{
public AuthorMap() : base("person_id")
{
Map(x => x.Country, "country");
HasMany(x => x.Books).Cascade.All().WithKeyColumn("book_id");
}
}
public class BorrowerMap : JoinedSubClassPart<Borrower>
{
public BorrowerMap() : base("person_id")
{
Map(x => x.UserName, "user_name");
HasMany(x => x.Schedule).Cascade.SaveUpdate().WithKeyColumn("borrower_id");
}
}
ここで、HQL「FROM Author a ORDER BY a.Name」を実行すると、すべての Author エンティティと Borrower エンティティのリストが返されますが、明らかに著者のリストが必要なだけです。これについて私をまっすぐに設定してください。