SpringBoot2-hibernate只获取输出参数的一部分
我有一个返回html内容的MS SQL存储过程,但当我使用hibernate运行该存储过程时,它不会从输出参数SpringBoot2-hibernate只获取输出参数的一部分,hibernate,spring-boot,sql-server-2008,Hibernate,Spring Boot,Sql Server 2008,我有一个返回html内容的MS SQL存储过程,但当我使用hibernate运行该存储过程时,它不会从输出参数ResultText获取完整数据。这就是我调用存储过程的方式 StoredProcedureQuery query = entityManager.createStoredProcedureQuery("Sp_Tab_PrintInvoice"); query.registerStoredProcedureParameter("Invno"
ResultText
获取完整数据。这就是我调用存储过程的方式
StoredProcedureQuery query = entityManager.createStoredProcedureQuery("Sp_Tab_PrintInvoice");
query.registerStoredProcedureParameter("Invno", Long.class, ParameterMode.IN);
query.registerStoredProcedureParameter("Ccode", Integer.class, ParameterMode.IN);
query.registerStoredProcedureParameter("UserName", String.class, ParameterMode.IN);
query.registerStoredProcedureParameter("Result", Integer.class, ParameterMode.OUT);
query.registerStoredProcedureParameter("ResultText", String.class, ParameterMode.OUT);
query.setParameter("Invno", invoiceDto.invoiceNumber);
query.setParameter("Ccode", invoiceDto.cCode);
query.setParameter("UserName", invoiceDto.userName);
query.execute();
String message = (String) query.getOutputParameterValue("ResultText");
System.out.println(message);
过程中ResultText的数据类型为nvarchar(max)
当我从IntelliJ Idea运行该过程时,它将返回完整的数据
我是否缺少一些配置?如何获取输出参数中的完整数据?如果您提到了hibernate配置中字段的大小,这可能是导致此行为的原因之一。最后,经过多次调试后,我发现hibernate将参数声明为
nvarchar(4000)
用于ResultText
,因为我已将其映射为
query.registerStoredProcedureParameter(“ResultText”,String.class,ParameterMode.OUT);
对于大文本,有,NTextType
,它不会截断4000个字符的文本。我改成
query.registerStoredProcedureParameter(“ResultText”,NTextType.class,ParameterMode.OUT)代码>
hibernate将参数声明为nvarchar(max)
问题解决了。我没有提到尺寸?如何配置hibernate以获取所有数据?