Spring Boot JPA 1:多(コレクション) Spring Boot 1.5.6のJPAの1:多(ElementCollection)について。 概要 あるエンティティーTで別のエンティティーDを複数保持する(T:D=1:n、すなわち1:多)場合、JPAではエンティティーTの中でDのコレクションを持つ形で書ける。 import javax.persistence.ElementCollection; import javax.persistence.Entity; @Entity public TEntity { ~ @ElementCollection private List<DEntity> dList; ~ } フィールドにコレクション書き、@ElementCollectionアノテーションを付ける。 (→@OneToManyアノテーションを使用する方法) Entityだ
Entityを定義したものの、Entityの中に繰り返し項目があり、別のEntityに切り出してしまった経験はないでしょうか。 @OneToMany(mappedBy="id") public Set<Order> orders; Entity自体はまとめて一つで扱いたい単位であり、RDBのテーブル定義の形に引きづられて複数のEntityが生まれてしまうのは良くないです。 Entityを定義してしまうことにより、直接アクセスしてほしくないEntityの属性についてのアクセスパスを提供してしまうことになります。 また、複数のEntityに分断されるため、DB上のライフサイクルも分れてしまうことになりバグの温床となります。*1 そのようなときには@Embeddableと@ElementCollectionを利用することで、Entityを増やさないようにしつつ、RDBへのオブジェクトのマッピング
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く