下面列出了org.hibernate.engine.SessionImplementor#internalLoad ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
public Object replace(
Object original,
Object target,
SessionImplementor session,
Object owner,
Map copyCache)
throws HibernateException {
if (original==null) {
return null;
}
else {
String entityName = session.bestGuessEntityName(original);
Serializable id = ForeignKeys.getEntityIdentifierIfNotUnsaved(
entityName,
original,
session
);
return session.internalLoad(
entityName,
id,
false,
false
);
}
}
/**
* Resolve an identifier via a load.
*
* @param id The entity id to resolve
* @param session The orginating session.
* @return The resolved identifier (i.e., loaded entity).
* @throws org.hibernate.HibernateException Indicates problems performing the load.
*/
protected final Object resolveIdentifier(Serializable id, SessionImplementor session) throws HibernateException {
boolean isProxyUnwrapEnabled = unwrapProxy &&
session.getFactory()
.getEntityPersister( getAssociatedEntityName() )
.isInstrumented( session.getEntityMode() );
Object proxyOrEntity = session.internalLoad(
getAssociatedEntityName(),
id,
eager,
isNullable() && !isProxyUnwrapEnabled
);
if ( proxyOrEntity instanceof HibernateProxy ) {
( ( HibernateProxy ) proxyOrEntity ).getHibernateLazyInitializer()
.setUnwrap( isProxyUnwrapEnabled );
}
return proxyOrEntity;
}
public Object assemble(
Serializable cached,
SessionImplementor session,
Object owner)
throws HibernateException {
ObjectTypeCacheEntry e = (ObjectTypeCacheEntry) cached;
return e==null ? null : session.internalLoad(e.entityName, e.id, false, false);
}
public Object assemble(
Serializable cached,
SessionImplementor session,
Object owner) throws HibernateException {
if (cached==null) return null;
Serializable[] o = (Serializable[]) cached;
Multiplicity m = new Multiplicity();
m.count = ( (Integer) o[0] ).intValue();
m.glarch = o[1]==null ?
null :
(GlarchProxy) session.internalLoad( Glarch.class.getName(), o[1], false, false );
return m;
}
private Object resolveAny(String entityName, Serializable id, SessionImplementor session)
throws HibernateException {
return entityName==null || id==null ?
null : session.internalLoad( entityName, id, false, false );
}