¿Cómo lidiar con (quizás) valores nulos en un PreparedStatement?

La declaración es

SELECT * FROM tableA WHERE x = ?

y el parámetro se inserta a través de java.sql.PreparedStatement 'stmt'

stmt.setString(1, y); // y may be null

Siy es nulo, la declaración no devuelve filas en todos los casos porquex = null siempre es falso (debería serx IS NULL) Una solución sería

SELECT * FROM tableA WHERE x = ? OR (x IS NULL AND ? IS NULL)

Pero luego tengo que establecer el mismo parámetro dos veces. ¿Hay una mejor solución?

¡Gracias!

Respuestas a la pregunta(5)

Su respuesta a la pregunta