Nextras/Orm hromadný insert

Barbarossa
Člen | 74
+
0
-

Ahoj,

potřeboval bych poradit s hromadným insertem. Je pro to nějaká metoda nebo to musím dělat ve foreach?

Třeba toto:

foreach($players as $entity){
	$this->orm->players->persistAndFlush($entity);
}

mi vygeneruje sql typu: start transaction, insert, commit, start, insert, commit…

v jiném cyklu zase plním to pole $players protože to jinak pro každou entitu tahalo provázání z jiné tabulky (což vedlo k timeout).

Dělám něco špatně nebo je toto opravdu nejefektivnější řešení?

David Matějka
Moderator | 6445
+
+3
-

hromadneho insertu asi nedosahnes, ale kdyz budes volat jen persist a za foreachem flush, tak to bude v jedne transakci

Barbarossa
Člen | 74
+
0
-

Oprava:

foreach($players as $entity){
    $this->orm->players->persist($entity);
}

$this->orm->players->flush();

Ať v tom ám jasno, je to takto opravdu nejlepší?

David Matějka
Moderator | 6445
+
0
-

ano, lepsiho vysledku asi nedosahnes