2
Nhibernate 3.2, Firebird Net Provider 2.7 및 기준을 사용하고 있습니다. 데이터베이스에 하나의 레코드 만 반환하는 방법에 대한 검색 결과.Nhibernate + Criteria + Firebird를 사용하여 데이터베이스에서 하나의 레코드 만 반환하는 방법?
var criteria = session.CreateCriteria(typeof(T))
.SetFirstResult(0)
.SetMaxResults(1)
.Add(getRestricao(rest))
.UniqueResult<T>();
tx.Commit();
return criteria;
하지만 작동하지 않습니다! 하는 오류는 다음과 같습니다
NHibernate.Exceptions.GenericADOException : could not execute query
[ /* criteria query */ SELECT this_.idPermissao as idPermis1_21_0_, this_.nomePermissao as nomePerm2_21_0_, this_.permissao as permissao21_0_ FROM Permissao this_ WHERE this_.nomePermissao = ? ]
Name:cp0 - Value:Administrador
[SQL: /* criteria query */ SELECT this_.idPermissao as idPermis1_21_0_, this_.nomePermissao as nomePerm2_21_0_, this_.permissao as permissao21_0_ FROM Permissao this_ WHERE this_.nomePermissao = ?]
----> System.ArgumentException : index should be greater than or equal to 0
Parameter name: index
방법 기준에 파이어 버드에서 "FIRST 1 SELECT"를 생성하기 위해? 감사!
제로 기록이있는 경우는 null를 돌려, 그것은 예외를 throw하지 않습니다 반환 (또는 null)해야 유지한다. 만약 내가 틀렸다고 정정하되 결과가 둘 이상이면''NonUniqueResultException''을 던지지 않습니까? 참조 : [AbstractQueryImpl line 959] (https://github.com/nhibernate/nhibernate-core/blob/master/src/NHibernate/Impl/AbstractQueryImpl.cs#L959). – annemartijn