我想使用CreateCriteria从数据库中的一个表中选择一行,其中我知道列的值,而不是主键,因此将有多个行匹配。该表包含更新信息,因此我们有一个列,其中包含每行的版本号,基于该列,我的主要问题提供了一个唯一的行。
我已尝试过以下几行,但似乎我应该可以使用更好的东西。如果有某种 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或类似的东西,我们使用Critierias并希望坚持这一点。
由于
答案 0 :(得分:0)
我在寻找同样的事情时遇到了你的问题,然后在以后遇到了这个问题:
var result = Session.CreateCriteria(typeof(Avtal))
.Add(Order.Desc("Versionsnummer")) // sort it and take the first one
.UniqueResult()))
.List();