2013-01-07 48 views
1

我有兩個表hotelhotal_room_type。並且有從hotal_room_typehotel的多對一映射。意思是hotel的主鍵是hotal_room_type的外鍵。JPA多對一持久性問題取數據

現在我取下面的代碼

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

hotal_room_type數據usfing當我有相同的酒店HotelRoomType的兩個記錄,然後我只對第一HotelRoomType了酒店。對於其他HotelRoomTypes它給出Hotel對象,但在hotelId變量中有0,意味着我無法再次接收Hotel對象。

我需要爲所有HotelRoomTypes獲取完整的酒店實體。如何使這成爲可能?

+0

什麼是event.id?請發佈您的映射類....... –

+0

事件是HotelsRoomType表中的另一個映射實體。主要問題是在取得酒店實體。 –

+0

使用join來獲得所有數據 –

回答

1

最後我找到了我的答案。我需要在Hotel實體的映射中添加cascade=CascadeType.ALL。如:

@ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL) 
@JoinColumn(name = "hot_room_frn_hot_id", nullable = false) 
public Hotel getHotel() { 
    return this.hotel; 
}