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
となるような設定の場合、そのテーブルへのデータ追加時にエラーが発生し実用はできなかったので注意。