2009-11-12 1 views
0

Я хочу выбрать строку из одной таблицы в базе данных с помощью CreateCriteria, где у меня есть знаковое значение для столбца, а не для первичного ключа, поэтому будет соответствовать несколько строк. Таблица содержит информацию об обновлении, поэтому у нас есть столбец, содержащий номер версии для каждой строки, на основе которого наряду с моим основным вопросом задается единственная уникальная строка.Использование CreateCriteria и выбор строки на основе maxvalue

Я пробовал что-то по следующим строкам, которое работает, но кажется, что я должен использовать что-то бетте. Было бы замечательно, если бы были какие-то 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 непосредственно или что-то в этом роде, мы используем Critieias и хотим придерживаться этого.

Благодаря

ответ

0

я наткнулся на ваш вопрос, если смотреть на то же самое, а затем побежал через это позже:

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

Смежные вопросы