code: @Override
      public void persistJoinTable(JoinTableData joinTableData)
      {
          String joinTableName = joinTableData.getJoinTableName();
          String joinColumnName = joinTableData.getJoinColumnName();
          String invJoinColumnName = joinTableData.getInverseJoinColumnName();
          Map<Object, Set<Object>> joinTableRecords = joinTableData.getJoinTableRecords();
  
          DBCollection dbCollection = mongoDb.getCollection(joinTableName);
          KunderaCoreUtils.printQuery("Persist join table:" + joinTableName, showQuery);
  
          for (Object key : joinTableRecords.keySet())
          {
              Set<Object> values = joinTableRecords.get(key);
              Object joinColumnValue = key;
  
              for (Object childId : values)
              {
                  DBObject dbObj = new BasicDBObject();
                  dbObj.put("_id", joinColumnValue.toString() + childId);
                  dbObj.put(joinColumnName, MongoDBUtils.populateValue(joinColumnValue, joinColumnValue.getClass()));
                  dbObj.put(invJoinColumnName, MongoDBUtils.populateValue(childId, childId.getClass()));
                  KunderaCoreUtils.printQuery("id:" + joinColumnValue.toString() + childId + "   " + joinColumnName + ":"
                          + joinColumnValue + "   " + invJoinColumnName + ":" + childId, showQuery);
  
                  dbCollection.save(dbObj, getWriteConcern());
              }
          }
      }
docs: /*
  (non-Javadoc)
  
  @see
  com.impetus.kundera.client.Client#persistJoinTable(com.impetus.kundera
  .persistence.context.jointable.JoinTableData)