code: private void ensureColumn(FieldDescriptorDef fieldDef, String checkLevel)
      {
          if (!fieldDef.hasProperty(PropertyHelper.OJB_PROPERTY_COLUMN))
          {
              String javaname = fieldDef.getName();
  
              if (fieldDef.isNested())
              {    
                  int pos = javaname.indexOf("::");
  
                  // we convert nested names ('_' for '::')
                  if (pos > 0)
                  {
                      StringBuffer newJavaname = new StringBuffer(javaname.substring(0, pos));
                      int          lastPos     = pos + 2;
  
                      do
                      {
                          pos = javaname.indexOf("::", lastPos);
                          newJavaname.append("_");
                          if (pos > 0)
                          {    
                              newJavaname.append(javaname.substring(lastPos, pos));
                              lastPos = pos + 2;
                          }
                          else
                          {
                              newJavaname.append(javaname.substring(lastPos));
                          }
                      }
                      while (pos > 0);
                      javaname = newJavaname.toString();
                  }
              }
              fieldDef.setProperty(PropertyHelper.OJB_PROPERTY_COLUMN, javaname);
          }
      }
docs: Constraint that ensures that the field has a column property. If none is specified, then
  the name of the field is used.
  
  @param fieldDef   The field descriptor
  @param checkLevel The current check level (this constraint is checked in all levels)