良いニュースと悪いニュースがあります。ModelTypeのリストを返す基準を作成できます。ただし、セッション管理は行われません。その理由は、個別のクエリはプロジェクションのみを返すことができ、プロジェクションは常に管理されていないためです。
以下のクエリは、2つのエンティティ間の内部結合を実行し、これら2つの列に基づいて個別のセットを返すため、上記と同様のクエリを生成します。結果のトランスフォーマーは、プロパティを介して設定できるタイプを生成するように設定する必要があります。おそらくModelTypeのリストを返すことができますが、それらがセッションによって管理されないことを知っているだけです。
Session.CreateCriteria<Model>()
.CreateAlias("Type", "t")
.Add(Restrictions.Eq("Qualifier", myQualifier)
.SetProjection(Projections.Distinct(
Projections.ProjectionList()
.Add(Projections.Alias(Projections.Property("t.Id"), "Id"))
.Add(Projections.Alias(Projections.Property("t.TypeName"), "TypeName"))))
.SetResultTransformer(Transformers.AliasToBean<ModelType>())