我想审查Ebean产生什么样的SQL语句,找出为什么某些例外情况(与SQL语法)在我的播放2.0应用程序正在发生。 有没有登录游戏框架2.0通过Ebean生成的SQL语句呢?
在播放1.x中,有一个jpa.debugSQL
配置选项,如果设置为true,将不正是这一点。 对于播放2.0是否存在Ebean类似的设置? 在约2.0播放的Ebean文档页面还是显得有些稀少。
我迄今为止尝试:
我已经加入我的控制器和这些方法调用onStart
/ onRequest
全局对象的方法,但它不会有任何影响:
Ebean.getServer(null).getAdminLogging().setLogLevel(LogLevel.SQL);
Ebean.getServer(null).getAdminLogging().setDebugGeneratedSql(Play.isDev());
我已经修改从日志级别application.conf
,但它并没有帮助(甚至日志级别TRACE
)。
对不起,是迟到了,但我在开发中使用这样的:
db.default.logStatements=true
logger.com.jolbox=DEBUG
添加这两行的application.conf,你是好去。
它输出的所有SQL语句。 希望能帮助到你。
您可以使用下面的语句使SQL日志
Ebean.getServer(null).getAdminLogging().setDebugGeneratedSql(true);
在使用此命令onRequest拦截例如
在接下来的版本中,您一定能在文件配置此ebean.properties 。
// Tips : use Play.isDev() to log only in dev mode
您也可以通过使用方法getGeneratedSQL获得当场SQL。 下面的代码示例
Query<PreventionActivity> where = find.where(
and(
and(
ge("Age_FROM", age)
, or(le("Age_TO", age), eq("Age_TO", 0))
)
, or(eq("Gender_CD", genderCd), eq("Gender_CD", "*"))
)
);
List<PreventionActivity> list = where.findList();
Logger.info("sql ");
Logger.info(where.getGeneratedSql());