Java 播放框架在请求开始时执行原始sql?

Java 播放框架在请求开始时执行原始sql?,java,sql,postgresql,playframework,playframework-2.0,Java,Sql,Postgresql,Playframework,Playframework 2.0,最近开始使用Play2.1.x。我想知道每个请求执行一次原始sql查询的最佳方法是什么?我使用postgres,并且需要为每个请求指定一次查询的模式-“将搜索路径设置为…”-类型 我用jdbc配置了postgres,它连接得很好,发现一些旧的注释,play.db.db应该有一个executeQuery方法,但现在没有了 要为每个请求运行代码,我已重写GlobalSettings类的“onRequest”方法: @Override public Action onRequest(Reque

最近开始使用Play2.1.x。我想知道每个请求执行一次原始sql查询的最佳方法是什么?我使用postgres,并且需要为每个请求指定一次查询的模式-“将搜索路径设置为…”-类型

我用jdbc配置了postgres,它连接得很好,发现一些旧的注释,play.db.db应该有一个executeQuery方法,但现在没有了

要为每个请求运行代码,我已重写GlobalSettings类的“onRequest”方法:

    @Override
public Action onRequest(Request request, Method actionMethod) {
   //play.api.db.DB.executeQuery(); // -- This does not exist?
   return super.onRequest(request, actionMethod);
}

我不知道这是否是最好的方法,任何帮助都将不胜感激。我无法更改底层架构,我需要将搜索路径设置为schema=)

我认为您错误地查看了scala文档。检查以下各项:

您可能希望使用play.db.db.getConnection(),它返回java.sql.Connection。然后您就可以使用标准的JavaAPI了

String sql = "...";

Connection conn = play.db.DB.getConnection();
try {
    Statement stmt = conn.createStatement();
    try {
        stmt.execute(sql)
    } finally {
        stmt.close();
    }
} finally {
    conn.close();
}