/** * INTERNAL: * This method is used to load a relationship from a list of PKs. * This list may be available if the relationship has been cached. */ public Object valueFromPKList(Object[] pks, AbstractSession session) { Vector pk = null; if (pks[0] == null) return null; if (getReferenceDescriptor().hasCMPPolicy()) { pk = getReferenceDescriptor().getCMPPolicy().createPkVectorFromKey(pks[0], session); } else { pk = (Vector) pks[0]; } ReadObjectQuery query = new ReadObjectQuery(); query.setReferenceClass(getReferenceClass()); query.setSelectionKey(pk); query.setIsExecutionClone(true); return session.executeQuery(query); }
throw new IllegalArgumentException(ExceptionLocalization.buildMessage("invalid_pk_class", new Object[] { descriptor.getCMPPolicy().getPKClass(), primaryKey.getClass() })); primaryKeyValues = descriptor.getCMPPolicy().createPkVectorFromKey(primaryKey, this); } else { if (!primaryKey.getClass().equals(theClass)) {
/** * INTERNAL: * This method is used to load a relationship from a list of PKs. This list * may be available if the relationship has been cached. */ public Object valueFromPKList(Object[] pks, AbstractSession session){ ContainerPolicy cp = this.containerPolicy; Object result = cp.containerInstance(pks.length); for (int index = 0; index < pks.length; ++index){ Vector pk = null; if (getReferenceDescriptor().hasCMPPolicy()){ pk = getReferenceDescriptor().getCMPPolicy().createPkVectorFromKey(pks[index], session); }else{ pk = (Vector)pks[index]; } ReadObjectQuery query = new ReadObjectQuery(); query.setReferenceClass(getReferenceClass()); query.setSelectionKey(pk); query.setIsExecutionClone(true); cp.addInto(session.executeQuery(query), result, session); } return result; }