나는 FirstName과 LastName이라는 두 개의 필드가있는 테이블을 가지고있다. 이름을 검색하려면 FirstName + " " + Lastname
을 포함하는 수식을 만들었습니다. 나는 다음과 같은 성명을하려고하면Hibernate Criterion and formula
는하지만 :
는 "제한 시간이 만료 전에 작업이나 서버의 완료에 경과 된 시간 초과 기간 응답하지 않습니다.
Restrictions.InsensitiveLike("empl.FullNameFormula", "% " + restriction.PersonName + " %")
나는 오류가 나타납니다 . " 내가 대신 같은의 동일한 작업을 수행하려고하면
는하지만 작동합니다
Restrictions.Eq("empl.FullNameFormula", "% " + restriction.PersonName + " %")
공식과 같은 문자를 구분을하려고에 오류가 있습니까?
NHibernate 버전 2.1.2.4000을 사용 중입니다.
업데이트 : 내 스택 트레이스는 다음과 같습니다 : 두 번째 비싼 테이블 스캔을 수행하는 동안
[SqlException (0x80131904): Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.]
System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) +1951450
System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +4849003
System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) +194
System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +2394
System.Data.SqlClient.SqlDataReader.ConsumeMetaData() +33
System.Data.SqlClient.SqlDataReader.get_MetaData() +83
System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) +297
System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) +954
System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) +162
System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) +32
System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) +141
System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior) +12
System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader() +12
NHibernate.AdoNet.AbstractBatcher.ExecuteReader(IDbCommand cmd) +216
NHibernate.Impl.MultiCriteriaImpl.GetResultsFromDatabase(IList results) +310
NHibernate.Impl.MultiCriteriaImpl.List() +348
NHibernate.Impl.FutureCriteriaBatch.GetResultsFrom(IMultiCriteria multiApproach) +10
NHibernate.Impl.FutureBatch`2.GetResults() +88
NHibernate.Impl.FutureBatch`2.get_Results() +16
NHibernate.Impl.FutureBatch`2.GetCurrentResult(Int32 currentIndex) +52
NHibernate.Impl.<>c__DisplayClass4`1.<GetEnumerator>b__3() +53
NHibernate.Impl.<get_Enumerable>d__0.MoveNext() +73
System.Linq.Buffer`1..ctor(IEnumerable`1 source) +259
System.Linq.Enumerable.ToArray(IEnumerable`1 source) +81
xxx.DataAccess.PublicationRepository.Search(PublicationQuery restriction) in xxxx :197
layouts_www_xxx.RunSearch() in xxx:100
layouts_www_xxx.OnInit(EventArgs e) in xxxx :39
System.Web.UI.Control.InitRecursive(Control namingContainer) +333
System.Web.UI.Control.InitRecursive(Control namingContainer) +210
System.Web.UI.Control.InitRecursive(Control namingContainer) +210
System.Web.UI.Control.InitRecursive(Control namingContainer) +210
System.Web.UI.Control.InitRecursive(Control namingContainer) +210
System.Web.UI.Control.InitRecursive(Control namingContainer) +210
System.Web.UI.Control.InitRecursive(Control namingContainer) +210
System.Web.UI.Control.InitRecursive(Control namingContainer) +210
System.Web.UI.Control.InitRecursive(Control namingContainer) +210
System.Web.UI.Control.InitRecursive(Control namingContainer) +210
System.Web.UI.Control.InitRecursive(Control namingContainer) +210
System.Web.UI.Control.InitRecursive(Control namingContainer) +210
System.Web.UI.Control.InitRecursive(Control namingContainer) +210
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +378
. DB 문제가 의심됩니다. – Rippo
또한이 프래그먼트가 실행되는 테이블의 전체 루트를 표현합니다. – Jaguar
@Jaguar : 그것은 수천 개의 행에서 실행될 것이므로 실제로는 아무 것도 없습니다. – Dofs