SQLオブジェクトの引数バインディングを使用する場合、JDBIはUUIDパラメーターですぐに機能しますか?
私はこのような方法を持っています:
@SqlQuery("EXECUTE [MyProcedure] :myField")
MyDto myMethod(@Bind("myField") UUID myField);
これは、次のようなパラメーターを受け取るSQLServerストアドプロシージャにバインドされています。
@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メソッドを記述し、バインドする前にそれらを文字列に変換する方法はありますか?