Bem, com Java eu recomendo API SqlQuery do Ebean por fazer isso (talvez porque eu prefira;)).
Em projeto/plugins.sbt descomente a linha (última):
addSbtPlugin("com.typesafe.sbt" % "sbt-play-ebean" % "1.0.0")
Em built.sbt modifique a linha e adicione o PlayEbean para plugins habilitados, como:
lazy val root = (project in file(".")).enablePlugins(PlayJava, PlayEbean)
Em seu conf/application.conf adicione esta linha após as configurações do banco de dados:
ebean.default = ["models.*"]
Então você pode usá-lo, ou seja, em sua ação como (amostra ofc):
SqlQuery query = Ebean.createSqlQuery("SELECT * FROM users WHERE username LIKE :username");
query.setParameter("username", "%200ok%");
List<SqlRow> rows = query.findList();
for (SqlRow row : rows) {
play.Logger.debug("Found user: " + row.getString("username") + " with ID: " + row.getInteger("id"));
}