From 3cc083db83d26736acf290e0a3950576900f3a93 Mon Sep 17 00:00:00 2001 From: Mingo Hagen Date: Thu, 20 May 2021 18:10:57 +0200 Subject: [PATCH 1/2] add test for set_data=[] --- tests/specs/default.cfc | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/tests/specs/default.cfc b/tests/specs/default.cfc index 7b546ee..7634a38 100644 --- a/tests/specs/default.cfc +++ b/tests/specs/default.cfc @@ -285,6 +285,25 @@ component extends="testbox.system.basespec" { expect( savedentitiesinsubfolder[ 1 ].getid() ).tobe( third.getid() ); } ); + it( 'expects save( {set_data=[]}) to clear all items in data', function() { + transaction { + var first = entityNew( 'other' ).save( { name = 'first' } ); + var second = entityNew( 'other' ).save( { name = 'second' } ); + variables.obj.save( { 'entitiesinsubfolder' = [ first, second ] } ); + } + + expect( variables.obj.getEntitiesinsubfolder() ).toHaveLength( 2 ); + + transaction { + variables.obj.save( { 'entitiesinsubfolder' = [] } ); + } + + expect( variables.obj.getEntitiesinsubfolder() ).toHaveLength( 0 ); + + // expect( entityLoad( 'other', { name = 'first' } ) ).toBeEmpty(); + // expect( entityLoad( 'other', { name = 'second' } ) ).toBeEmpty(); + } ); + it( 'expects remove to work', function() { transaction { var multiple_1 = entityNew( 'multiple' ).save(); From 7cf91153d4dd61b65155daf8fc67db8bb9d72cde Mon Sep 17 00:00:00 2001 From: Mingo Hagen Date: Thu, 20 May 2021 18:11:48 +0200 Subject: [PATCH 2/2] restore "set#reverseField#" from commit #71856bd --- base.cfc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/base.cfc b/base.cfc index b4ab011..d8f5297 100644 --- a/base.cfc +++ b/base.cfc @@ -987,6 +987,9 @@ component mappedSuperClass=true cacheuse="transactional" defaultSort="sortorder" var reverseField = objectToOverride.getReverseField( reverseCFCLookup, property.inverseJoinColumn ); queueInstruction( objectToOverride, "remove#reverseField#", this ); arrayAppend( result, "#objectToOverride.getName()#.remove#reverseField#(#this.getName()#)" ); + } else { + var reverseField = objectToOverride.getReverseField( reverseCFCLookup, property.fkcolumn, false ); + queueInstruction( objectToOverride, "set#reverseField#", "null" ); } queueInstruction( this, "remove#propertyName( property )#", objectToOverride );