$a = new Album();
$a->setTitle('Bunkka');
$t = new Track();
$t->setTitle('Zoo York');
$a->addTrack($t);
Посредством репозитория (EntityManager) они будут помещены в базу
AlbumCollection::persist($a);
$em->flush();
Теперь их (альбом и треки) нужно слинковать, раньше это сделать мы не могли, так как у нас не было их ID'шников в базе.
Я предлагаю сделать метод onPushToDatabase, в нем ассоциировать присвоенный insertID к записям (альбомам и трекам) и после сохранения всех артистов/треков делать еще один запрос, который как раз и установит соответствия.
Товарищ заявляет, что в данном случае будет большой оверхед. Какие еще есть варианты?