首页 > 解决方案 > Spring Boot 2 - hibernate 只获取输出参数的一部分

问题描述

我有一个返回 html 内容的 MS SQL 存储过程,但是当我使用 hibernate 运行存储过程时,它没有从输出参数中获取完整数据,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 运行该过程时,它会返回完整数据。

我错过了一些配置吗?我应该怎么做才能在输出参数中获取完整数据?

标签: hibernatespring-bootsql-server-2008

解决方案


如果您在休眠配置中提到了字段的大小,那可能是导致此行为的可能原因之一。


推荐阅读