次のような権限を持つモデル クラスUser
があります。List<String>
@LazyCollection(LazyCollectionOption.FALSE)
@CollectionOfElements
@Column()
private List<String> permissions = Collections.emptyList();
次のようなエントリを持つ SQL テーブルが作成されました。
最近、Hibernate 4 にアップグレードしました。@CollectionOfElements
アノテーションが非推奨から完全に削除されたため@ElementCollection
、次のように に移行するのに適した時期であると判断しました。
@LazyCollection(LazyCollectionOption.FALSE)
@ElementCollection // << CHANGED
@Column()
private List<String> permissions = Collections.emptyList();
ただし、起動すると、管理者アカウントでログインできませんでした。興味深いことに、H2 の JAR を使用してデータベースを調べたところ、テーブルが変更されていることがわかりました。
私の質問:
@CollectionOfElements
古いものから新しいものへの DDL/スキーマの変更の包括的なリストはあります@ElementCollection
か?- 下位互換性を確保するために推奨される方法、またはこれらのプロパティに提供できる追加の注釈はありますか? (特定の名前マッピング スキームまたは列名を指定できますか?)
- 最後に、すべての
Collection
タイプがこの変更Sets
の影響を受けると想定Maps
しています。