`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側で設定しても良い。
2021/04/14 19:27:58

コメント (0)

あなたもコメントしてみませんか

アカウント新規作成(無料)

既にアカウントを持っている方は ログイン