1

我有两张桌子hotelhotal_room_type。并且有从hotal_room_typeto的多对一映射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 的两条记录时,我仅获得了第一个 HotelRoomType 的 Hotel。对于其他 HotelRoomTypes 它给出了 Hotel 对象但hotelId变量中有 0 ,这意味着我无法再次接收 Hotel 对象。

我需要为所有 HotelRoomTypes 获取完整的酒店实体。如何使这成为可能?

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 回答