[Android]roomで自動生成されたSQL分の確認方法

roomで生成されるSQL文をlogcatに出力するにはDBインスタンス作成時に以下のような指定行います。

_mDB = Room.databaseBuilder(applicationContext, DBSample::class.java, "db_sample")
           .allowMainThreadQueries()
           .enableMultiInstanceInvalidation()
           // SQL文をlogcatに出力する処理
           .setQueryCallback(object : RoomDatabase.QueryCallback {
                override fun onQuery(sqlQuery: String, bindArgs: List<Any?>) {
                    Log.v(TAG, "onQuery : sql=$sqlQuery")
                    bindArgs.forEach {
                        Log.v(TAG, "onQuery : arg=$it")
                    }
                }
            }, Executors.newSingleThreadExecutor())
            .build()

上記はStackOverflowでのログ出力の質疑応答に記載がった方法から私が使ったものです。

0 件のコメント :

コメントを投稿