在我的 sf 2.8 项目中,获得了以下具有自关系的实体,用于存储旅游目的地,例如,父母可以是加勒比,孩子牙买加,孩子金斯敦
class Destination
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="name", type="string", length=255)
* @Assert\NotBlank()
*/
private $name;
/**
* @var \Application\ModelBundle\Entity\Destination
*
* @ORM\ManyToOne(targetEntity="Application\ModelBundle\Entity\Destination", inversedBy="children")
* @ORM\JoinColumn(name="parent", referencedColumnName="id", onDelete="cascade")
*/
private $parent;
/**
* @var \Application\ModelBundle\Entity\Destination
*
* @ORM\OneToMany(targetEntity="Application\ModelBundle\Entity\Destination", mappedBy="parent", cascade={"persist", "remove"})
*/
private $children;
/**
* @var \Application\ModelBundle\Entity\User
*
* @ORM\ManyToOne(targetEntity="Application\ModelBundle\Entity\User", inversedBy="destinations")
* @ORM\JoinColumn(name="user", referencedColumnName="id", onDelete="cascade")
* @Assert\Type(type="Application\ModelBundle\Entity\User")
*/
private $user;
/**
* @var \Application\ModelBundle\Entity\Hotel
*
* ORM\OneToMany(targetEntity="Application\ModelBundle\Entity\Hotel", mappedBy="touristDestination", cascade={"persist"})
*/
private $hotels;
}
几乎没有记录,一切都很好,但是当我用来自一个国家的所有记录(例如 12000 条记录)填充实体或表时,系统内存不足,不可能做某事,并抛出此错误
OutOfMemoryException in JsonSerializationVisitor.php line 29:
Error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 10489856 bytes)
in JsonSerializationVisitor.php line 29
我正在运行一个命令从 xls 文件加载目标,它内存不足,永远不会完成,后来我无法对我的项目执行任何操作
也许问题是 symfony 加载了所有相关的对象并且它崩溃了,有什么解决办法吗?