У меня есть столбец в моей SQL-2005 базы данных, которая используется, чтобы быть VARCHAR (макс), но он был изменен на NVARCHAR (макс).Как Hibernate может отображать nvarchar (max) типа данных SQL?
Теперь мне нужно обновить файл сопоставления спящий режим, чтобы отразить изменения, и это то, что он будет использоваться:
< тип элемента = столбец «текст» = «Значение»/>
Когда я пытаюсь запустить приложение, появляется следующее сообщение об ошибке:
org.hibernate.HibernateException: Неверный тип столбца в таблице [] для столбца Value. Найдено: NTEXT, ожидаемый: текст
Что я должен поставить в «типа» атрибут правильно отобразить столбец как NVARCHAR (макс)?
Я пробовал установить тип ntext, но hibernate не знал, что это было. Я попробовал установить тип string, но обработал строка как текст тип.
Почему вы зарегистрировали тип столбца COLB?и что это означает $ 1 в nvarchar ($ 1)? Спасибо –
Это было давно, и я не могу вспомнить, но registerColumnType() сопоставляет типы SQL с типами Hibernate. $ l (L, а не # 1) - это шаблон соответствия, который представляет длину столбца nvarchar. Если столбец nvarchar имеет определенную длину, он будет сопоставлен с типом VARCHAR. Если столбец nvarchar имеет максимальную длину, он будет сопоставлен с типом CLOB. – ampersandre
Обратите внимание, что для SQL Server 2014 мне пришлось * удалить * переопределенный метод 'getTypeName' в коде выше! – vikingsteve