public void add(ExportInfo info) {
    ChromatticSession session = persister.getSession();

    ExportInfoMapping eim = session.findByPath(ExportInfoMapping.class, getChildPath(info));
    long exportTime = info.getExportTime();
    if (eim != null) {
      persister.closeSession(false);
      throw new IllegalArgumentException(
          "An ExportInfo with export time " + exportTime + " already exists!");
    } else {
      ExportInfosMapping exportInfosMapping = getExportInfosMapping(session);
      String exportTimeAsString = "" + exportTime;
      ExportInfoMapping exportInfo = exportInfosMapping.createExportInfo(exportTimeAsString);
      session.persist(exportInfosMapping, exportInfo, exportTimeAsString);
      exportInfo.initFrom(info);

      persister.closeSession(true);
      exportInfosCount++;
    }
  }
 public String getChildPath(ExportInfo exportInfo) {
   return getPathFor(exportInfo.getExportTime());
 }