使用 SQL 对象参数绑定时,JDBI是否可以直接使用 UUID 参数?
我有这样的方法:
@SqlQuery("EXECUTE [MyProcedure] :myField")
MyDto myMethod(@Bind("myField") UUID myField);
它绑定到接收如下参数的 SQL Server 存储过程:
@myField uniqueidentifier
执行时,抛出此异常:
! com.microsoft.sqlserver.jdbc.SQLServerException: The conversion from UNKNOWN to UNKNOWN is unsupported.
! at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:190)
! at com.microsoft.sqlserver.jdbc.DataTypes.throwConversionError(DataTypes.java:1117)
! at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.setObject(SQLServerPreparedStatement.java:991)
如果我将 JDBI 上的参数类型更改为 String,并使用 UUID 对象中的 toString() 方法调用它,它会起作用:
@SqlQuery("EXECUTE [MyProcedure] :myField")
MyDto trash(@Bind("myField") String myField);
有没有办法编写接受 UUID 参数的 DAO 方法并在绑定之前将它们转换为字符串?