0

在我的 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 加载了所有相关的对象并且它崩溃了,有什么解决办法吗?

4

0 回答 0