NHibernate could not get or update next value[SQL: ] 物件名 'hibernate_unique_key' 無效。
錯誤資訊:
---------------------------
---------------------------
NHibernate.Exceptions.GenericADOException: could not get or update next value[SQL: ] ---> System.Data.SqlClient.SqlException: 物件名 'hibernate_unique_key' 無效。
在 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
在 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
在 System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
在 System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()
在 System.Data.SqlClient.SqlDataReader.get_MetaData()
在 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
在 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, SqlDataReader ds, Boolean describeParameterEncryptionRequest)
在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean asyncWrite)
在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
在 System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
在 System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior)
在 System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader()
在 NHibernate.Id.TableGenerator.DoWorkInCurrentTransaction(ISessionImplementor session, IDbConnection conn, IDbTransaction transaction)
在 NHibernate.Engine.TransactionHelper.Work.DoWork(IDbConnection connection, IDbTransaction transaction)
--- 內部異常堆疊跟蹤的結尾 ---
在 NHibernate.Engine.TransactionHelper.Work.DoWork(IDbConnection connection, IDbTransaction transaction)
在 NHibernate.Transaction.AdoNetTransactionFactory.ExecuteWorkInIsolation(ISessionImplementor session, IIsolatedWork work, Boolean transacted)
在 NHibernate.Transaction.AdoNetWithDistributedTransactionFactory.ExecuteWorkInIsolation(ISessionImplementor session, IIsolatedWork work, Boolean transacted)
在 NHibernate.Engine.Transaction.Isolater.DoIsolatedWork(IIsolatedWork work, ISessionImplementor session)
在 NHibernate.Engine.TransactionHelper.DoWorkInNewTransaction(ISessionImplementor session)
在 NHibernate.Id.TableGenerator.Generate(ISessionImplementor session, Object obj)
在 NHibernate.Id.TableHiLoGenerator.Generate(ISessionImplementor session, Object obj)
在 NHibernate.Event.Default.AbstractSaveEventListener.SaveWithGeneratedId(Object entity, String entityName, Object anything, IEventSource source, Boolean requiresImmediateIdAccess)
在 NHibernate.Event.Default.DefaultSaveOrUpdateEventListener.SaveWithGeneratedOrRequestedId(SaveOrUpdateEvent event)
在 NHibernate.Event.Default.DefaultSaveEventListener.SaveWithGeneratedOrRequestedId(SaveOrUpdateEvent event)
在 NHibernate.Event.Default.DefaultSaveOrUpdateEventListener.EntityIsTransient(SaveOrUpdateEvent event)
在 NHibernate.Event.Default.DefaultSaveEventListener.PerformSaveOrUpdate(SaveOrUpdateEvent event)
在 NHibernate.Event.Default.DefaultSaveOrUpdateEventListener.OnSaveOrUpdate(SaveOrUpdateEvent event)
在 NHibernate.Impl.SessionImpl.FireSave(SaveOrUpdateEvent event)
在 NHibernate.Impl.SessionImpl.Save(Object obj)
在 WindowsFormsApplication1.Form1.Form1_Load(Object sender, EventArgs e) 位置 C:\Users\JianKunKing\Desktop\NHibernate\NHibernate03\WindowsFormsApplication1\Form1.cs:行號 41
---------------------------
確定
---------------------------
解決方法:
I’ve genereated a schema for my (SQL 2005) db using SchemaExport, and it’s created a table
CREATE TABLE [dbo].[hibernate_unique_key](
[next_hi][int] NULL
) ON [PRIMARY]
When I try to add an entity, I get the error:
---------------------------
---------------------------
NHibernate.Id.IdentifierGenerationException: could not read a hi value - you need to populate the table: hibernate_unique_key
在 NHibernate.Id.TableGenerator.DoWorkInCurrentTransaction(ISessionImplementor session, IDbConnection conn, IDbTransaction transaction)
在 NHibernate.Engine.TransactionHelper.Work.DoWork(IDbConnection connection, IDbTransaction transaction)
在 NHibernate.Transaction.AdoNetTransactionFactory.ExecuteWorkInIsolation(ISessionImplementor session, IIsolatedWork work, Boolean transacted)
在 NHibernate.Transaction.AdoNetWithDistributedTransactionFactory.ExecuteWorkInIsolation(ISessionImplementor session, IIsolatedWork work, Boolean transacted)
在 NHibernate.Engine.Transaction.Isolater.DoIsolatedWork(IIsolatedWork work, ISessionImplementor session)
在 NHibernate.Engine.TransactionHelper.DoWorkInNewTransaction(ISessionImplementor session)
在 NHibernate.Id.TableGenerator.Generate(ISessionImplementor session, Object obj)
在 NHibernate.Id.TableHiLoGenerator.Generate(ISessionImplementor session, Object obj)
在 NHibernate.Event.Default.AbstractSaveEventListener.SaveWithGeneratedId(Object entity, String entityName, Object anything, IEventSource source, Boolean requiresImmediateIdAccess)
在 NHibernate.Event.Default.DefaultSaveOrUpdateEventListener.SaveWithGeneratedOrRequestedId(SaveOrUpdateEvent event)
在 NHibernate.Event.Default.DefaultSaveEventListener.SaveWithGeneratedOrRequestedId(SaveOrUpdateEvent event)
在 NHibernate.Event.Default.DefaultSaveOrUpdateEventListener.EntityIsTransient(SaveOrUpdateEvent event)
在 NHibernate.Event.Default.DefaultSaveEventListener.PerformSaveOrUpdate(SaveOrUpdateEvent event)
在 NHibernate.Event.Default.DefaultSaveOrUpdateEventListener.OnSaveOrUpdate(SaveOrUpdateEvent event)
在 NHibernate.Impl.SessionImpl.FireSave(SaveOrUpdateEvent event)
在 NHibernate.Impl.SessionImpl.Save(Object obj)
在 WindowsFormsApplication1.Form1.Form1_Load(Object sender, EventArgs e) 位置 C:\Users\JianKunKing\Desktop\NHibernate\NHibernate03\WindowsFormsApplication1\Form1.cs:行號 42
---------------------------
確定
---------------------------
Solution:
NHibernate expects to find a value that stores the current hi value in that table, ie it first runs something like:
current_hi =[SELECT max(next_hi) FROM hibernate_unique_key].
So all you need to do is seed that table with an initial number, ie:
INSERT INTO hibernate_unique_key(next_hi) VALUES (0)
參考文章:
在部署OLAT到myeclipse,資料庫配置正確的情況下,出現異常:Error with hilo in NHibernate - “could not read a hi value - you
相關文章
- SQL物件名無效的解決SQL物件
- 教你如何解決SQL server中提示物件名無效SQLServer物件
- Last_SQL_Error: Could not execute Update_rows eventASTSQLError
- 編譯無效物件編譯物件
- apt could not get lockAPT
- oracle編譯無效物件Oracle編譯物件
- 恢復完提示無效物件物件
- Oracle 處理無效物件數Oracle物件
- 識別和修復無效物件物件
- Linux學習之出現無法apt-get updateLinuxapt-get
- utlrp.sql 一次性統一編譯無效物件(pl/sql procedure等)SQL編譯物件
- win10 excel .xlsx檔案格式無效或副檔名無效怎麼辦Win10Excel
- how to get sharepoint lookup value
- 建立儲存過程編譯無效物件儲存過程編譯物件
- jedis異常:Could not get a resource from the pool
- sudo apt-get update | grep "Failed"apt-getAI
- dbms_system.set_sql_trace_in_session 無效SQLSession
- How to update BOL entity property value via ABAP code
- NHibernate “login: method get_Upwd should be virtual”錯誤解答!
- SQL__UPDATESQL
- Oracle之處理synonym同義詞無效物件Oracle物件
- Oracle資料庫無效物件問題處理Oracle資料庫物件
- Oracle EBS 重新編譯無效物件 invalid objectOracle編譯物件Object
- centOS修改主機名,重啟後無效解決CentOS
- Get_Next的VB程式碼
- 在nhibernate中執行SQL語句SQL
- MySQL服務名無效或者MySQL正在啟動 MySQL無法啟動MySql
- KMP演算法的next、next value陣列的手工計算KMP演算法陣列
- 【SQL】10 SQL UPDATE 語句SQL
- Oracle查詢並批量編譯無效物件指令碼Oracle編譯物件指令碼
- Sql server with as update用法SQLServer
- Oracle中查詢依賴的無效物件(invalid object)Oracle物件Object
- 惱人的bug 無效的rowid&物件不再存在物件
- (轉)編譯Oracle中無效的物件的N中方法編譯Oracle物件
- 給控制元件重新命名時,提示“目錄名無效”控制元件
- win10合併分割槽到c盤顯示包名稱無效怎麼辦?win10顯示包名稱無效解決方法Win10
- win10提示檔案格式或副檔名無效怎麼辦_win10 excel檔案格式或副檔名無效的解決方法Win10Excel
- NHibernate中文翻譯文件(整理自DDLLY名稱空間)