Prevención de inyección SQL con hibernación.

Tengo un código existente donde la aplicación genera diferentes SQL dependientes de muchas condiciones y los ejecuto a través de las sesiones de hibernación createSQLQuery (). Aquí, los parámetros se ajustan a la cadena sql que reside en la clase java como reemplazo de cadena normal. El problema aquí es que ahora necesito prevenir las inyecciones de SQL. Así que para eso tengo que usar getNamedQuery () y enlazar los parámetros para que hibernate se encargue de los caracteres especiales. Pero el problema es que mover la cadena sql's al archivo xml es una sobrecarga porque genera condicionalmente sql's. Así que decido hacer manualmente la validación de caracteres especiales y añadirla a la consulta de cadena y ejecutar como está ahora. Entonces, reviso la fuente de PrepareStatement que encontré, solo lanzo una excepción

byte[] arrayOfByte1 = new byte[0];
try
{
   arrayOfByte1 = CharsToBytes(this.OdbcApi.charSet, arrayOfChar);
}
   catch (UnsupportedEncodingException localUnsupportedEncodingException) {
}

¿Cómo puedo hacer el mismo tipo de codificación en la clase java que antes para los parámetros antes de resolverlos con la consulta de cadena para eliminar inyecciones de SQL? ¿O hay alguna forma en la que pueda mantener la cadena sql ya que es un parámetro adjunto y usar hibernación para ejecutar la consulta?

Respuestas a la pregunta(2)

Su respuesta a la pregunta