1

と の 2 つのテーブルがhotelありhotal_room_typeます。hotal_room_typeまた、 からへの多対 1 マッピングがありhotelます。hotelの主キーが の外部キーであることを意味しhotal_room_typeます。

今、hotal_room_type次のコードを使用してデータを取得しています

Query query = entityManager.createQuery("from "
            + HotelsRoomType.class.getName() + " where event.id = "
            + eventId);
List<HotelsRoomType> list = query.getResultList();

同じホテルを持つ HotelRoomType の 2 つのレコードを取得すると、最初の HotelRoomType に対してのみホテルを取得します。他の HotelRoomTypes の場合、 Hotel オブジェクトが返されますが、hotelIdvariable に 0 があると、再度 Hotel オブジェクトを受け取ることができないことを意味します。

すべての HotelRoomTypes の完全な Hotel エンティティを取得する必要があります。これを可能にする方法は?

4

1 に答える 1

1

最後に、私は自分の答えを見つけました。エンティティcascade=CascadeType.ALLのマッピングを追加する必要があります。Hotelお気に入り :

@ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "hot_room_frn_hot_id", nullable = false)
public Hotel getHotel() {
    return this.hotel;
}
于 2013-01-08T05:57:18.947 に答える