O JDBI aceita parâmetros UUID?
Ao usar a ligação de argumentos do objeto SQL,JDBI trabalhar fora da caixa com parâmetros UUID?
Eu tenho um método como este:
@SqlQuery("EXECUTE [MyProcedure] :myField")
MyDto myMethod(@Bind("myField") UUID myField);
que está vinculado a um procedimento armazenado do SQL Server que recebe um parâmetro como este:
@myField uniqueidentifier
Quando executada, esta exceção é lançada:
! 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)
Se eu alterar o tipo de parâmetro no JDBI para String e chamá-lo usando o método toString () do objeto UUID, ele funcionará:
@SqlQuery("EXECUTE [MyProcedure] :myField")
MyDto trash(@Bind("myField") String myField);
Existe uma maneira de escrever meus métodos DAO aceitando parâmetros UUID e tê-los convertidos em seqüências de caracteres antes da vinculação?