anchor.diff:  			// Load all child objects
   			if( structKeyExists( col, 'cfc' ) ){
   				var tmp = createObject( "component", col.cfc ).init( dao = this.getDao(), dropcreate = this.getDropCreate() );
  -				var setterFunc = this["set" & col.name ];
  +				// Skip if setter doesn't exist (happens on dynamic child properties)
  +				if( !structKeyExists( this, "set" & col.name ) ){
  +					if( structKeyExists( this, "add" & col.name ) ){
  +						var setterFunc = this["add" & col.name ];
  +					}else{
  +						continue;
  +					}
  +				}else{
  +					var setterFunc = this["set" & col.name ];
  +				}
  +
   				var childWhere = structKeyExists( col, 'where' ) ? col.where : '1=1';
   
   				if( structKeyExists( col, 'fieldType' ) && col.fieldType eq 'one-to-many' && structKeyExists( col, 'cfc' ) ){
  
positive.code: 				if( e.type eq 'Database' ){
  					if (e.Message neq 'Datasource #getDao().getDSN()# could not be found.'){
  						// The table didn't exist, so let's make it
  						if( createTableIfNotExist && !variables.meta.name == "BaseModelObject" ){
  							makeTable();
  						}else{
  							return false;
  
negative.code: 					LOCAL.functionName = "set" & queryArguments[ i ];
  					try{
  						LOCAL.tmpFunc = this[ LOCAL.functionName ];
  						if( validateProperty( queryArguments[ i ], arguments.missingMethodArguments[ i ] ).valid ){
  							LOCAL.tmpFunc( arguments.missingMethodArguments[ i ] );
  						}
  						variables._isDirty = false;
  