@Entity public class Organization {}
@Entity public class User {
@ManyToOne
Organization org;
}
上述代码中的@ManyToOne interface
被建模为“Organization org
”,即使组织ID只存储在数据库中。我不能只将其建模为Integer orgId
,以便我可以避免加载整个组织对象以保持持久性。
有时,当我们为不同的组织批量导入用户时,花费更多的时间来加载组织而不是用户持久性本身。想知道其他人如何处理这个问题。
答案 0 :(得分:2)
您应该使用@ManyToOne(fetch=FetchType.LAZY)
进行Hibernate延迟加载(FetchType.LAZY),以便不会加载整个Organization对象。如果你只是访问user.org.id,hibernate会知道不要加入整个表只是为了找到organization_id。
是的,您可以映射Integer orgId
,如果这是您将在代码中使用的唯一字段。