Would it be possible to just expose the foreign key instead of the entire object in a @ManyToOne interface
@Entity public class Organization {}
@Entity public class User {
@ManyToOne
Organization org;
}
The @ManyToOne interface
in the above code is modeled as "Organization org
", even though only the organization id is stored in the database. Can't I just model this as Integer orgId
so that I can avoiding loading the entire Organization object for persistence sake.
Sometimes when we bulk impo开发者_如何学JAVArt users for different Organization(s), more time is spent loading Organization(s) rather than user persistence itself. Would like to know, how others are handling this issue.
You should use @ManyToOne(fetch=FetchType.LAZY)
for Hibernate lazy loading (FetchType.LAZY) so that the entire Organization object will not be loaded. If you are only accessing user.org.id hibernate will know not to join the whole table just to find the organization_id.
See http://docs.jboss.org/hibernate/annotations/3.5/reference/en/html_single/#entity-hibspec-singleassoc-fetching
And yes you can just map Integer orgId
if that's really the only field you will be using in your code.
精彩评论