当前位置: 首页 > 知识库问答 >
问题:

试图坚持所有者的原则

弘志勇
2023-03-14

我已经设置了独立于Symfony框架的Doctrine和Symfony表单(因为我不需要大部分)。

我遇到的问题是,当试图坚持一个新的“审计”时,它有一个“类型”原则,似乎想坚持关系的拥有方(类型)。

例如,审计可能具有车辆服务的类型。

 // -- Model/Audit.php --
 /**
 * @var \Model\Type
 *
 * @ORM\ManyToOne(targetEntity="Model\Audit\Type", inversedBy="audits")
 * @ORM\JoinColumn(name="type_id", referencedColumnName="id", nullable=true)
 */
private $type;
/**
 * Set type
 *
 * @param \Model\Type $type
 * @return Audit
 */
public function setType(\Model\Type $type)
{
    $this->type = $type;
    return $this;
}

然后在反面:

/**
 * @ORM\OneToMany(targetEntity="Model\Audit", mappedBy="type")
 * @var type */
private $audits;

public function __construct() {
     $this->audits = new \Doctrine\Common\Collections\ArrayCollection();
}

持久性代码如下所示:

$data = $form->getData();
$entityManager->persist($data);
$entityManager->flush();

最后,form类是:

class AuditType extends AbstractType {

   public function buildForm(FormBuilderInterface $builder, array $options) {
       $builder
            ->add('name')
            ->add('type', 'entity', array(
                'class' => "Model\Type"
            ));
  }

所有这些看起来(至少对我来说)与所有文档中的条令和符号都完全一样,但我发现了一个错误:

通过关系“Model\Audit#type”找到了一个新实体,该关系未配置为级联实体:车辆服务的持久化操作。要解决此问题,请对此未知实体显式调用EntityManager#persist(),或在映射中配置cascade persist此关联,例如@manytone(..,cascade={“persist”})。“”

这确实令人沮丧,因为我不想保留类型方面,我只想(用最基本的术语)将id 3放入Type\u id列。然而,教义似乎认为我想创造一种新的“类型”,而我当然不想。它们已经存在。

使用$entityManager-

共有1个答案

舒斯伯
2023-03-14

我觉得你需要准备一下

/**
 * @ORM\OneToMany(targetEntity="Model\Audit", mappedBy="type")
 * @var type
 */
 private $audits;

 public function __construct() {
 $this->audits = new \Doctrine\Common\Collections\ArrayCollection();
 }

/**
 * @return ArrayCollection
 */
public function getAudits()
{
    return $this->audits;
}

/**
 * @param Audit $audit
 */
public function addAudits(Audit $audit)
{
    $this->audits->add($audit);
    $audit->setTyoe($this);
}

在A型udit.model

     // -- Model/Audit.php --
   /**
   * @var \Model\Type
   *
   * @ORM\ManyToOne(targetEntity="Model\Audit\Type", inversedBy="audits")
   * @ORM\JoinColumn(name="type_id", referencedColumnName="id", nullable=true)
   */
   private $type;
   /**
   * Set type
   *
   * @param \Model\Type $type
   * @return Audit
   */
   public function setType(\Model\Type $type)
   {
      $this->type = $type;
   }
 类似资料:
  • 每当我试图将子对象持久化到JPA中现有的父对象时,就会出现以下错误: 原因:javax。验证。ConstraintViolationException:在组[javax.Validation.groups.Default]的持续时间内,类[store.entidades.Sucursal]的验证失败,约束冲突列表:[ConstraintViolationImpl]{interpolatedMess

  • 我已经在我的listView中实现了ViewHolder和ConvertView。我的listView由一个自定义适配器填充,其中包含一个预订列表。当我单击一个项目时,一个不可见的布局从右向左滑动,以显示按钮。我可以通过单击一个关闭按钮来关闭这个覆盖布局,以便它再次被隐藏。在这个覆盖布局上,我有一个删除按钮,它使我能够删除该项目。到目前为止一切都很好。当我擦除一个项目时,该项目会按预期消失,然后重

  • 我正在编写一个 Java 程序。它应该打印出年终账户余额,今年投资,年度回报和年度数量。前任: 第一年-投资10000美元,投资额为10%,最终投资额为11000美元第二年-在现有11000美元的基础上再投资10000美元,现在你有21000美元,年回报率为2100美元,最终投资额为23100美元,持续投资6年。 我的代码打印了所有6年,但与第一年的值相同。循环有什么问题吗?非常感谢。这里我的代码

  • 我刚接触Spring,我可能犯了最愚蠢的错误,但我不能解决这个问题超过2个小时。根据视频教程,我做了分页,我做的和他的一模一样,但他在实体之间没有关系。我认为错误在于作者和图书实体之间的一对一关系。你能帮忙吗? 我想添加分页,因为我的表中有100多万条记录,在添加分页后,我出现了这个错误。 账簿实体: 作者实体: BookServiceImpl类: } LibrarianController类:

  • 问题内容: 我遵循了有关创建JavaScript秒表,并试图将其扩展为可与多个秒表(一个类的多个实例)一起使用。我遇到的问题是,当我试图在时钟滴答声中显示当前值时,我需要使用“this”对类实例进行硬编码,这是行不通的(在我使用console.log的那一行中)。我已将代码缩减到最低限度以尝试理解这一方面,并​​粘贴了以下内容: 我认为以下链接描述了我的问题,但我对它的理解不足以在此处应用。问题是

  • 2016年3月10日,Tinker项目正式启动,并在同年9月23日举行的MDCC会议上开源。一年过去了,两个人,50%的工作时间。总的来说,填了一些坑,获得少许成绩,也遭受不少批评。究竟Tinker是否将已经很糟糕的Android的生态变得更差,会不会对用户的安全造成更大的挑战? 回想Tinker的初心,我们希望开发者可以用很小代价进行快速升级,它是国内追求快速迭代诉求。立项至今,Tinker踩了