我有像
这样的关系人< - > LivedAt< - >地址
每个人住在哪里可能有多个地址,每个地址可能被很多人 LivedAt 。 LivedAt具有诸如“StartDate”,“EndDate”以及指向一个Person和一个Address的指针(这些不是我的实际对象,只是示例)
地址有一个主键 ADDRESS_ID
我的问题是,如何设置以便我可以创建 LivedAt 对象而无需从数据库中获取Address对象?
我已经从我的进程的另一部分获得了 ADDRESS_IDs ,并且不希望hibernate尝试获取地址。如果没有hibernate可用,我只会做“插入”语句,但我希望以hibernate方式执行此操作。我正在使用hibernate w annotations。
答案 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