Как может Быть в спящем режиме, отображают тип данных SQL nvarchar (макс.)?

Нет. Дополнительные определения метода требуют экземпляра типа, который Вы расширяете. Его неудачник; я не уверен почему его необходимое...

11
задан ampersandre 8 July 2009 в 17:18
поделиться

2 ответа

Нашел ответ в блоге Tremend Tech . Вы должны написать свой собственный класс SQLServerDialect, он выглядит примерно так:

public class SQLServerNativeDialect extends SQLServerDialect {
     public SQLServerNativeDialect() {
         super();
         registerColumnType(Types.VARCHAR, "nvarchar($l)");
         registerColumnType(Types.CLOB, "nvarchar(max)");
     }

    public String getTypeName(int code, int length, int precision, int scale) throws HibernateException {
        if(code != 2005) {
            return super.getTypeName(code, length, precision, scale);
        } else {
            return "ntext";
        }
    }
}

Этот класс сопоставляет типы Hibernate с типами SQL, поэтому класс будет отображать тип данных SQL nvarchar (max) в Hibernate ] Тип данных CLOB .

Метод getTypeName используется для возврата «ntext», когда Hibernate запрашивает тип данных с кодом 2005 (который выглядит как тип данных nvarchar (max)) .

Наконец, вам нужно изменить диалект сохраняемости спящего режима на этот новый класс SQLServerDialect, который позволяет спящему режиму переводить типы данных в типы данных SQL.

7
ответ дан 3 December 2019 в 03:19
поделиться

Строки в Javascript уже передаются «по ссылке» - - вызов процедуры со строкой не предполагает копирования содержимого строки. Здесь есть две проблемы:

  • Строки неизменяемы. В отличие от строк C ++, созданная строка JavaScript не может быть изменена.
  • В JavaScript переменным не назначаются статические слоты, как в C ++. registerColumnType (Types.VARCHAR, "nvarchar ($ l)"); // Мне нравится _l_ength, а не 1.

0
ответ дан 3 December 2019 в 03:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: