It turned out CakePHP failed to link GroupSet and Groups. No go…..
For example, GroupSet hasMany Groups and Group hasAndBelongsToMany users. They can be saved using one saveAll call. No need to deal with the IDs.
One level hasMany saveAll looks like:
Array ( [GroupSet] => Array ( [name] => "Title" ) [Group] => Array ( [0] => Array ( [name] => On Gwoo the Kungwoo ) [1] => Array ( [name] => More on Gwoo ) ) )
The multiple levels hasMany (or HABTM) should looks like this:
Array ( [GroupSet] => Array ( [name] => "Title" ) [Group] => Array ( [0] => Array ( [Group] => Array (
[name] => Group1
) [GroupMember] => Array ( [0] => Array ( [user_id] => 1 ) [1] => Array ( [user_id] => 2 ) ) [1] => Array ( [Group] => Array ( [name] => Group2 ) [GroupMember] => Array ( [0] => Array ( [user_id] => 3 ) [1] => Array ( [user_id] => 4 ) )
))