У меня есть хранимая процедура в 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());
}
}