Próbuję wydrukować interpolowane oświadczenie Slick2 SQL do debugowania i wszystko, co dostaję, to ten ze znakami zapytania, np.
def query(name: String) = sql"SELECT MAX(age) FROM users WHERE name = $name".as[Int]
println(query("Bob").getStatement)
Powyższe drukuje to:
SELECT MAX(age) FROM users WHERE name = ?
Jak mogę to wydrukować:
SELECT MAX(age) FROM users WHERE name = "Bob"
Uwaga: to pytanie NIE jest duplikatem to
Odpowiedzi:
3 dla odpowiedzi № 1Prawdopodobnie chcesz dodać następujące elementy do pliku application.conf
logger.scala.slick.session=DEBUG
Powinno to pokazać skompilowane ciągi zapytań w konsoli.
2 dla odpowiedzi nr 2
Od śliskich dokumentacja: "Możesz użyć # $ zamiast $, aby uzyskać literalną wartość wstawioną bezpośrednio do zapytania".
//note the "#"
def query(name : String) = sql"SELECT MAX(age) FROM users WHERE name = "#$name"".as[Int]