У меня есть взаимно-однонаправленное отношение (nullable = false) между двумя объектами.Это выглядит очень просто, но я получил ошибку (после успешного заполнения моих данных слушателем) во время операции flush ().Мой слушатель автоматически создает и заполняет это отношение (и оно отлично работает!), Но я получаю «Нарушение ограничения целостности: 1048 Столбец 'directory_root_id' не может быть пустым".
Я использую черту для описания ORM.Может ли это быть причиной?
Я добавил некоторый текст для печати на терминале (в преперсисте и постперсисте), чтобы подтвердить, что моя сущность действительно содержит связанную сущность, и это нормально.Терминал возвращает:
-> ПРЕДУПРЕЖДЕНИЕ: незадолго до сброса контролируется, если в сущности «Министр транзитной экологии и пасьянсов» существует «API \ FileBundle \ Entity \ DirectoryRoot»: ОК !!!
Черта:
trait SysDir {
/**
* @ORM\OneToOne(targetEntity=DirectoryRoot::class, cascade={"persist", "remove"})
* @ORM\JoinColumn(name="directory_root_id", referencedColumnName="id", nullable=false)
* @Annot\AttachSysDirs() --> my listener works fine
*/
protected $rootdirectoryown;
/**
* Set rootdirectoryown
* @param DirectoryRoot $rootdirectory
* @param boolean $inverse = true
* @return self
*/
public function setRootdirectoryown(DirectoryRoot $rootdirectory, $inverse = true) {
if($this->rootdirectoryown !== $rootdirectory) {
if($this->rootdirectoryown instanceOf DirectoryRoot) $this->removeRootdirectoryown();
$this->rootdirectoryown = $rootdirectory;
if($inverse) $rootdirectory->setOwner($this, false);
}
return $this;
}
/**
* Get rootdirectoryown
* @return DirectoryRoot | null
*/
public function getRootdirectoryown() {
return $this->rootdirectoryown;
}
Мой абстрактный класс:
abstract class ModelTier extends BaseUser {
use \ModelApi\NestedBundle\Traits\SysDir;
В моей сущности сеттер работает (заполняется моим слушателем), и до того, как сохранится,setter возвращает сущность DirectoryRoot, но во время flush () я получил ошибку SQL:
-> Возникла исключительная ситуация при выполнении INSERT INTO modeltier
(функциональность, softdeleted, включена, fa_icon, microtimeid, созданный, обновленный, name, slug, title, menutitle, description, color, ytlinks, fileentity_id, avatar_id, language_id, directory_root_id, directory_system_id, class_name) ЗНАЧЕНИЯ (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) 'с параметрами [null, null, 1, "fa-building", "@ 155912345440193900", "2019-05-29 11:50:55 ", null," Экологический переходный период и пасьянс "," Мини-переходный эколог "ique-et-solidaire "," Экологическая политика и солидарность переходов "," Экологическая и солидарность переходов ", нуль," #BBBBBB "," [] ", ноль, 2, 7, ноль, ноль"partenaire "]:
SQLSTATE [23000]: нарушение ограничения целостности: 1048 Столбец 'directory_root_id' не может быть пустым