我在SQL 2005數據庫中的列曾經是一個VARCHAR(最大),但它已被更改爲爲nvarchar(最大)。Hibernate如何映射SQL數據類型nvarchar(max)?
現在我需要更新我的Hibernate映射文件,以反映變化,這是它使用的是:
<元素類型=「文本」列=「值」/>
當試圖運行應用程序時,出現以下錯誤:
org.hibernate.HibernateException:[表]錯列類型列值。發現:ntext的,預期:文本
我應該把什麼在「類型」屬性正確映射列作爲爲nvarchar(最大)?
我試過設置類型爲ntext,但是hibernate並不知道那是什麼。我試過設置的類型爲字符串,但它對待字符串作爲文本類型。
你爲什麼要註冊列類型COLB?這個$ 1在nvarchar($ 1)中的含義是什麼?謝謝 – 2013-10-07 05:13:42
這是很久以前的事了,我不記得,但是registerColumnType()將SQL類型映射到Hibernate類型。 $ l(L,不是#1)是表示nvarchar列長度的匹配模式。如果nvarchar列具有定義的長度,則它將映射到VARCHAR類型。如果nvarchar列具有最大長度,則它將被映射到CLOB類型。 – ampersandre 2013-11-19 19:23:44
請注意,對於SQL Server 2014,我必須*刪除*上面的代碼中重寫的方法'getTypeName'! – vikingsteve 2016-04-13 11:08:24