Выходной параметр nvarchar (max) в хранимой процедуре сервера sql усекается до 4000 символов в весенней загрузке остальные API, используя Hibernate - PullRequest
0 голосов
/ 11 апреля 2019

У меня есть хранимая процедура в SQL Server 2017, которая возвращает данные в виде JSON в выходном параметре nvarchar (max).

Я проверил, чтобы весь набор результатов возвращался из хранимой процедурызапустить его в базе данных, и все работает там.Он возвращает строку JSON, превышающую 4000 символов.

Однако в моем весеннем загрузочном API с использованием Hibernate 5.3.7 вывод усекается до 4000 символов.

Любые идеи о том, как я могуисправить это, пожалуйста?

Код, где я вызываю хранимую процедуру:

    StoredProcedureQuery query = entityManager
            .createStoredProcedureQuery("usp_my_stored_proc");
    query.registerStoredProcedureParameter("reportOutputData", String.class, ParameterMode.OUT);


    query.execute();


    return String.valueOf(query.getOutputParameterValue("reportOutputData"));

Длина query.getOutputParameterValue("reportOutputData") равна 4000. Она должна быть намного длиннее (например, 40 000 +).

application.properties:

spring.jpa.properties.hibernate.dialect=com.company.package.config.CustomSQLServerDialect

CustomSQLServerDialect:

    public class CustomSQLServerDialect extends SQLServer2012Dialect {

    public CustomSQLServerDialect() {
        super();
        registerColumnType(Types.VARCHAR, "nvarchar(max)");
        registerColumnType(Types.CLOB, "nvarchar(max)");
        registerColumnType(Types.NVARCHAR, "nvarchar(max)");
        registerColumnType(Types.NCLOB, "nvarchar(max)");
        registerHibernateType(Types.NVARCHAR, 
        StandardBasicTypes.STRING.getName());
}

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...