EbeanでJson型を扱う
環境 : Play Framework 2.6・play-ebean 4.1.4・PostgreSQL
EbeanでJson型を扱いたい。
アノテーションとしては、@DbJsonBと@DbJsonの2つが用意されている。
PostgreSQLにおけるjson型とjsonb型の違いはこちら(https://www.postgresql.jp/document/10/html/datatype-json.html)の解説を参照。
@DbJsonBアノテーションを利用した場合はjsonbとしてDDLが作成されるが、@DbJsonアノテーションを利用する場合はstorage引数によりDDLの型を変更できる。
バリエーションは以下の通り。
- @DbJson(storage = DbJsonType.JSON)
json型- @DbJson(storage = DbJsonType.JSONB)
jsonb型- @DbJson(storage = DbJsonType.VARCHAR)
varchar(3000)型- @DbJson(storage = DbJsonType.CLOB)
text型- @DbJson(storage = DbJsonType.BLOB)
bytea型
上記の環境の場合、DDLの型がjsonまたはjsonbとなるような設定の場合、そのテーブルへのデータ追加時にエラーが発生し実用はできなかったので注意。