public boolean deriveConcatenatedId(PersistRequestBean<?> persist) {

    if (matches == null) {
      String m =
          "Matches for the concatinated key columns where not found?"
              + " I expect that the concatinated key was null, and this bean does"
              + " not have ManyToOne assoc beans matching the primary key columns?";
      throw new PersistenceException(m);
    }

    EntityBean bean = persist.getEntityBean();

    // create the new id
    EntityBean newId = (EntityBean) embId.createEmbeddedId();

    // populate it from the assoc one id values...
    for (int i = 0; i < matches.length; i++) {
      matches[i].populate(bean, newId);
    }

    // support PropertyChangeSupport
    embId.setValueIntercept(bean, newId);
    return true;
  }