ClearDB使用時の注意
heroku
のアドオンClearDB
を利用する場合、日本語を含むデータの検索時に正常にヒットしない不具合が発生する場合がある。
具体的には、heroku
でClearDB
アドオンを追加すると自動的に環境変数にCLEARDB_DATABASE_URL
が追加されるが、この環境変数をそのままjdbc接続文字列として利用するとwhere句の条件が正しく処理されない不具合が発生する。
基本的にはフレームワーク起因ではなく、クライアントからの接続時の設定に起因する現象であるが、Play Framework 2.6
から利用する場合は対応が必要となる。
対応方法としては、CLEARDB_DATABASE_URL
として追加される環境変数の後ろに&characterEncoding=UTF-8&characterSetResults=UTF-8
を追加すれば良い。
修正後のjdbc文字列が以下のようになるように設定すれば良い。
mysql://<ユーザー名>:<パスワード>@us-cdbr-east-03.cleardb.com/<テーブル名>?reconnect=true&characterEncoding=UTF-8&characterSetResults=UTF-8
対応は、heroku
の管理画面上から環境変数を直接編集しても、conf側で設定しても良い。