Estoy tratando de imprimir una sentencia de SQL Slick2 interpolada para la depuración y todo lo que obtengo es el que tiene signos de interrogación, por ejemplo.
def query(name: String) = sql"SELECT MAX(age) FROM users WHERE name = $name".as[Int]
println(query("Bob").getStatement)
Lo anterior imprime esto:
SELECT MAX(age) FROM users WHERE name = ?
¿Cómo puedo hacer que imprima esto?
SELECT MAX(age) FROM users WHERE name = "Bob"
Nota: Esta pregunta NO es un duplicado de esta
Respuestas
3 para la respuesta № 1Probablemente quieras agregar lo siguiente a tu aplicación.conf
logger.scala.slick.session=DEBUG
Esto debería mostrar cadenas de consulta compiladas en la consola.
2 para la respuesta № 2
De la mancha documentación: "Puede usar # $ en lugar de $ para obtener el valor literal insertado directamente en la consulta".
//note the "#"
def query(name : String) = sql"SELECT MAX(age) FROM users WHERE name = "#$name"".as[Int]