Hibernateを使い始めたばかりで、最初にコンテナーをロードせずに、新しい要素をoneToManyリレーションに挿入する方法を考えていました。
次の例を考えてみましょう。
@Entity
@Table(name="orders")
class Order {
@Id @GeneratedId
public Long id;
@OneToMany(mappedBy="order")
public List<Item> items = new ArrayList<Item>();
}
@Entity
@Table(name="items")
class Item {
@Id @GeneratedId
public Long id;
@ManyToOne
public Order order;
}
新しいアイテムを注文に挿入したいのですが(注文のIDがわかっていて、それが有効であることを知っています)、最初に注文をロードしたくありません。SQLは、Orderオブジェクト全体ではなく、挿入用のIDのみを必要とするため、明らかにこれは可能です。