Ok, eventualmente encontré el problema, tenía que ser CallableStatement con setEscapeProcessing(false) .