2009-11-12 4 views
0

데이터베이스의 한 테이블에서 CreateCriteria를 사용하여 하나의 행을 선택하려고합니다. 여기서 기본 키가 아닌 열에 대해 알고있는 값이 있으므로 여러 행이 일치합니다. 표에는 업데이트 정보가 포함되어 있으므로 기본 질문과 함께 고유 한 행 하나를 기반으로하는 각 행의 버전 번호가 포함 된 열이 있습니다.CreateCriteria를 사용하여 maxvalue를 기반으로 행 선택

작동하는 다음 줄을 따라 뭔가를 시도했지만 bette를 사용할 수 있어야합니다. 올바른 방향으로 어떤 포인터가 매우 도움이 될 것입니다 및 NO 내가 직접 HQL을 CreateQuery를 사용 쓰고 싶지 않아

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>(); 

Restriction.Max ("Avtal")의 일종이 있다면 그것은 좋은 것입니다 또는 그런 식으로, 우리는 Critierias를 사용하고 그것에 충실하고자합니다.

감사

같은 일을 찾을 때 나는 당신의 질문 가로 질러

답변

0

후 나중에이 가로 질러 :

var result = Session.CreateCriteria(typeof(Avtal)) .Add(Order.Desc("Versionsnummer")) // sort it and take the first one .UniqueResult())) .List();