コード例 #1
0
  /**
   * Meant to be called only from do Lookup.
   *
   * @param rSession the rets session
   * @param hSession the hibernate session
   * @exception HibernateException if an error occurs
   */
  private void doLookupTypes(Session hSession) throws HibernateException {
    MetadataTable tLookupTypes = getMetadataTable(MetadataTable.LOOKUP_TYPE);

    Iterator i = mLookups.values().iterator();
    while (i.hasNext()) {
      Lookup lookup = (Lookup) i.next();
      List lookupTypes = tLookupTypes.getDataRows(lookup.getPath());
      Set hLookupTypes = new HashSet();
      if (lookupTypes != null) {
        Iterator j = lookupTypes.iterator();
        while (j.hasNext()) {
          Metadata md = (Metadata) j.next();
          LookupType hLookupType = new LookupType();

          hLookupType.setLookup(lookup);

          hLookupType.setLongValue(md.getAttribute("LongValue"));
          hLookupType.setShortValue(md.getAttribute("ShortValue"));
          hLookupType.setValue(md.getAttribute("Value"));

          hLookupType.updateLevel();

          hSession.save(hLookupType);
          hLookupTypes.add(hLookupType);
        }
      }
      lookup.setLookupTypes(hLookupTypes);
      hSession.saveOrUpdate(lookup);
    }
  }