Ich habe eine Spalte in meiner SQL-2005-Datenbank, die einen varchar (max) früher, aber es zu einem nvarchar (max) wurde geändert.Wie kann Hibernate den SQL-Datentyp nvarchar (max) zuordnen?
Jetzt muss ich meine Hibernate Mapping-Datei aktualisieren, um die Änderung zu reflektieren, und das ist, was es früher war:
< Element type = "text" column = "Value"/>
Wenn ich versuche, die Anwendung auszuführen, wird die folgende Fehlermeldung:
org.hibernate.HibernateException: falschen Spaltentyp in [Tabelle] für Spalt Wert. Gefunden: ntext- erwartet: text
Was soll ich in dem 'Typ' setze Attribut korrekt die Spalte als nvarchar (max) zur Karte?
Ich habe versucht, den Typ auf ntext, aber Hibernate wusste nicht, was das war. Ich habe versucht, den Typ auf Zeichenfolge, aber es behandelt Zeichenfolge als Text Typ.
Warum haben Sie auch den Spaltentyp COLB registriert?und was bedeutet $ 1 in nvarchar ($ 1)? Danke –
Das war eine lange Zeit und ich kann mich nicht mehr genau erinnern, aber registerColumnType() ordnet SQL-Typen Hibernate-Typen zu. $ l (L, nicht # 1) ist ein übereinstimmendes Muster, das die Länge der nvarchar-Spalte darstellt. Wenn die nvarchar-Spalte eine definierte Länge hat, wird sie dem VARCHAR-Typ zugeordnet. Wenn die nvarchar-Spalte die maximale Länge hat, wird sie dem CLOB-Typ zugeordnet. – ampersandre
Bitte beachten Sie, dass ich für den SQL Server 2014 * die überschriebene Methode 'getTypeName' im obigen Code entfernen musste !! – vikingsteve