Hibernate ManyToMany无需加载对象

时间:2011-11-18 17:34:36

标签: hibernate jpa persistence many-to-many

我有像

这样的关系

人< - > LivedAt< - >地址

每个人住在哪里可能有多个地址,每个地址可能被很多人 LivedAt 。 LivedAt具有诸如“StartDate”,“EndDate”以及指向一个Person和一个Address的指针(这些不是我的实际对象,只是示例)

地址有一个主键 ADDRESS_ID

我的问题是,如何设置以便我可以创建 LivedAt 对象而无需从数据库中获取Address对象?

我已经从我的进程的另一部分获得了 ADDRESS_IDs ,并且不希望hibernate尝试获取地址。如果没有hibernate可用,我只会做“插入”语句,但我希望以hibernate方式执行此操作。我正在使用hibernate w annotations。

1 个答案:

答案 0 :(得分:1)

使用Session.load()EntityManager.getReference()。这只会将代理返回给实际的Address实体,而不会从数据库中加载任何内容。

Address address = (Address) session.load(Address.class, addressId);
// address is a proxy. It will be lazy-loaded only if you invoke a method on it