Question

I want to examine what SQL statements are generated by Ebean to find out why certain exceptions (related to SQL syntax) are occurring in my Play 2.0 application. Is there a way to log the SQL statements generated by Ebean in Play Framework 2.0?

In Play 1.x, there is a jpa.debugSQL config option, which if set to true, will do exactly this. Does a similar setting for Ebean exist for Play 2.0? The documentation page about Ebean of Play 2.0 is still a bit scarce.


What I have tried so far:

I have added these method calls in my controllers and the onStart / onRequest methods of the Global object, but it doesn't have any effect:

Ebean.getServer(null).getAdminLogging().setLogLevel(LogLevel.SQL);
Ebean.getServer(null).getAdminLogging().setDebugGeneratedSql(Play.isDev());

I have modified the log levels from application.conf, but it didn't help either (even with log level TRACE).

Was it helpful?

Solution

Sorry to be late to the party, but I use this in development:

db.default.logStatements=true

logger.com.jolbox=DEBUG

Add those two lines to the application.conf and you are good to go.

It outputs all the sql statements. Hope it helps.

OTHER TIPS

You can enable SQL logging by using the following statement

Ebean.getServer(null).getAdminLogging().setDebugGeneratedSql(true);

Use this command in the onRequest interceptor for example

In a next release, you will certainly be able to configure this in the file ebean.properties.

// Tips : use Play.isDev() to log only in dev mode

Also you can get SQL on the spot by using method getGeneratedSQL. Code sample below

        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());
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top