// Needs a connection so it can fetch more stuff lazily
  Copy(ResultSet rs) throws SQLException {
    super();

    copyId = rs.getInt("copy#");
    bibId = rs.getInt("bib#");
    note = rs.getString("pac_note");

    location = rs.getString("location");
    locationName = rs.getString("location_name");
    collectionDescr = rs.getString("collection_descr");
    collection = rs.getString("collection");

    callNumber =
        new CallNumber(
            rs.getString("call_number"),
            rs.getString("call_type"),
            rs.getString("copy_number"),
            rs.getString("call_type_hint"));
    callType = rs.getString("call_type");
    callTypeHint = rs.getString("call_type_hint");
    callTypeName = rs.getString("call_type_name");

    mediaType = rs.getString("media_type");
    mediaTypeDescr = rs.getString("media_descr");
    summaryOfHoldings = rs.getBoolean("summary_of_holdings");
    itemType = rs.getString("itype");
    itemTypeDescr = rs.getString("idescr");
  }