2011-10-21 113 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

相关问题