Подтвердить что ты не робот

Play Framework 2.0 и ведение журнала Ebean SQL

Я хочу изучить, какие SQL-выражения генерируются Ebean, чтобы узнать, почему некоторые исключения (связанные с синтаксисом SQL) встречаются в моем приложении Play 2.0. Есть ли способ записать SQL-запросы, созданные Ebean в Play Framework 2.0?

В Play 1.x существует опция jpa.debugSQL config, которая, если установлена ​​в true, будет делать именно это. Существует ли аналогичная настройка для Ebean для Play 2.0? Страница документации

4b9b3361

Ответ 1

Извините, что опоздал на вечеринку, но я использую это в разработке:

db.default.logStatements=true

logger.com.jolbox=DEBUG

Добавьте эти две строки в application.conf, и вам хорошо идти.

Он выводит все операторы sql. Надеюсь, что это поможет.

Ответ 2

Вы можете включить ведение журнала SQL, используя следующую инструкцию

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

Используйте эту команду в перехватчике onRequest, например

В следующей версии вы, безусловно, сможете настроить это в файле ebean.properties.

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

Ответ 3

Также вы можете получить SQL на месте с помощью метода getGeneratedSQL. Пример кода ниже

        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());