主キーではなく、列の既知の値がある CreateCriteria を使用して、データベース内の 1 つのテーブルから行を選択したいので、複数の行が一致します。テーブルには更新情報が含まれているため、各行のバージョン番号を含む列があり、これに基づいて、主な質問とともに単一の一意の行が得られます。
次の行に沿って何かを試してみましたが、うまくいくはずですが、もっと良いものを使用できるはずです。ある種のRestriction.Max("Avtal")があればいいのに
var result = Session.CreateCriteria(typeof(Avtal))
.Add(Restrictions.Eq("Avtal", avtal))
.Add(Restrictions.Eq("Versionsnummer",
Session.CreateCriteria((typeof(Avtal)))
.Add(Restrictions.Eq("Avtal", avtal))
.SetProjection(Projections.Max("version"))
.UniqueResult<int>()))
.List<Avtal>();
正しい方向へのポインターは非常に役に立ちます。いいえ、CreateQuery を使用したくない、HQL を直接記述したり、そのようなものを使用したりしません。基準を使用し、それに固執したいと考えています。
ありがとう