Java - 是否可以使用varbinary out参数调用存储过程〜10k字节并在参数中使用null

时间:2016-10-10 04:09:13

标签: spring hibernate jpa jdbc spring-data-jpa

我似乎遇到了JPA / Hibernate和可用SQL Server驱动程序的限制。 (我知道的两个驱动程序是jTDS和微软的驱动程序)。

我的要求是调用存储过程:

  1. 有一个varbinary(max)类型的out参数,用~10k字节AND
  2. 设置
  3. 有两个in参数,默认值为null。调用时,这两个参数中只有一个可以具有空值。我需要第二个具有非空值。
  4. 以下是程序签名:

    procedure [dbo].[pTest]
    
      @outParam varbinary(max) out
    
     ,@optParam1 varchar(max) = null
    
     ,@optParam2 varchar(max) = null 
    
     -- optParam1 or optParam2 can be null. But both cannot be null.
    

    理想情况下,我想将Spring Data JPA与jTDS结合使用。但jTDS失败1 b / c它截断为8k字节。它通过2 b / c我不必指定具有默认值的参数。

    使用Microsoft的驱动程序,1次通过(AFAIK)。 2失败b / c我必须指定params到非null值。如果我不这样做,那么我的指数超出范围。但是如果我指定optParam1,我必须为每个Hibernate赋予一个非null值。如果我给它一个非空值,存储过程会抱怨b / c它有一个规则,即optParam1和optParam2都不能都具有非空值。

    使用Spring Data JPA / JPA可以满足我的要求吗?我必须在这些要求范围内工作。因此,如果不支持使用JPA,那么在Java中有没有替代方法呢?

0 个答案:

没有答案