2011-10-21 44 views
4

我有一個JPA(休眠)實體:我可以使用ID設置實體關係嗎?

@Entity class Transaction { 

    @ManyToOne 
    private Room room; 

} 

當我創建一個新的Transaction,我知道Room,它應該是指(但沒有Room對象)的ID。我能以某種方式創建和堅持一個Transaction只有這個信息,還是我真的需要:

Room room = em.find(roomId, Room.class); 
em.persist(new Transaction(room, ...)); 

回答

1

我有一個類似的問題在那裏我找到了一個替代的解決方案,但可能是它不是一個最佳實踐。

現在,因爲該映射取決於roomId創建一個構造間(類型roomId),並設置您節省交易豆之前豆。所以需要從數據庫中獲取數據。 hibernate關心它需要映射bean的Id。

我已經使用這種方法獲取數據,我希望您不希望在更新交易時得到更新。因此,設置插入,將映射的屬性更新爲false。

+0

我想過,但擔心的Hibernate會看到假'Room'爲尚未持久。我會試試這個。 –

+0

@BartvanHeukelom:你試過這個嗎?或有任何問題? – ManuPK

相關問題