我正在对自己进行Symfony培训,并努力解决双向关联(非常基本)的问题,因为通过将实体转储到细枝模板中,我可以验证数据是否正确,但关联始终为空。
我的问题是这样的,但解决方案不共享。
我看了这里的留档,似乎我遵循了正确的步骤。
My db包含一个父表和一个由子表关联的子表。parent_id作为外键,两个表都是popolated的,我使用条令:GENERATE:ENTITIES和条令:GENERATE:CRUD。
在家长班,我有:
function __construct() {
$this->lastUpd = new \DateTime();
$this->children = new ArrayCollection();
}
/*
* @ORM\OneToMany(targetEntity="AppBundle\Entity\Children", mappedBy="parent_id", cascade={"persist"})
*/
private $children;
public function setChildren(ArrayCollection $children) {
return $this->children = $children;
}
public function getChildren() {
return $this->children;
}
在儿童班,我有:
/**
* @var \AppBundle\Entity\Parents
* @ORM\ManyToOne(targetEntity="AppBundle\Entity\Parents", inversedBy="children")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="parent_id", referencedColumnName="parent_id")
* })
*/
private $parent_id;
/**
* Set parent_id
* @param \AppBundle\Entity\Parents $parent_id
* @return Parents
*/
public function setParentID(\AppBundle\Entity\Parents $parent_id= null) {
$this->parent_id = $parent_id;
return $this;
}
/**
* Get parent_id
* @return \AppBundle\Entity\Parents
*/
public function getParentID() {
return $this->parent_id;
}
作为查看Simfony profiler(家长列表页面)的附加信息-
我很抱歉发布了一个如此基本的错误,我打赌解决方案很简单,但我看不到它。
注意:我假设你不是在创建一个数组集合,然后将它们全部添加。
您没有任何addchild
方法(您需要调用)。
使用阵列集合
很容易做到这一点。
public function addChild(Children $child) {
$this->children->add($child);
}
您也可以使用removeChild
。
public function removeChild(Children $child) {
$this->children->removeElement($child);
}
然后在控制器中。
$child = new Children();
$parent->addChild($child);
然后,当您持久化父对象时,子对象将由于级联持久化而跟随。我还将添加cascade={“remove”}
,因此当您删除父级时,子级将转到。
如果我只传递一个字符串,而不是的列表: 我得到的是:
我正在尝试使用一个不是很简单的关联表在两个JPA实体之间进行ManyTo许多连接。我想知道是否有一种方法可以在不创建关联表实体的情况下实现这一点(类似于使用@JoinTable)。 表A-ID(PK) -名称 表b -ID(PK) -名称 TableMapping-ID(PK) -Parent\u ID(FK)-- 映射以我上面描述的方式存储,原因我不知道,也无法更改。很多地方都在这样使用它,我必
我正在尝试使用Spring数据中的JPQL优化一个基本查询,以避免对数据库进行多个查询,并使用JOIN Fetch在一个查询中检索所有信息,我一直得到以下异常: 这是我的道: 这些是我的实体: 如有任何见解和帮助,将不胜感激。 我想要实现的纯SQL如下所示:
我正在使用JPA2.1(Eclipselink2.5.1)和JBoss7.1。 为什么不工作是懒惰加载? 谢谢
我在将带有@ManyToOne关系的实体(雇员)映射到带有@OneToMany关系的实体(社区)时遇到了问题。 当我将一个实体(社区)分配给一个实体(员工),其中社区的值为空时,它工作正常。 问题出现了,如果雇员已经为社区分配了价值。当我更改该值并保存更改时,该员工为社区获得了新的值,并且这个新社区在集合中获得了该员工。唯一的问题是,老社区仍然有这个员工在收集,但它应该被删除。这只有在数据库重新启
问题内容: 我目前正在尝试使用Spring Data存储库来删除一些实体。Delete调用可以正常工作,没有任何异常/错误消息,但是此后不会删除该实体。 这些是我的实体: 和 该存储库非常简单: 删除呼叫就像 有什么想法为什么这种变化没有反映在数据库中? 编辑1: 我找到了解决方法,但我仍然不明白真正的问题是什么。如果我这样删除帖子,它“起作用”(由于违反约束,有几个例外,但帖子仍被删除): 编辑
我有一个这样的家长班 像这样的孩子 现在我想讲述另一个班级的孩子,像这样 它总是给我以下错误: [教义\通用\注释\注释异常] [创建错误]在属性zmpim\Entity\Fiel$value上声明的注释@ORM\ManyToOned::没有名为"mappdBy"的属性。可用属性:塔吉特实体,级联,获取,反转 两者都得到了mappdby,...所以这个错误似乎是毫无意义的 更新: 字段有值和标签。
问题内容: 我收到以下hibernate异常: 简化的Matchup类如下所示: 简化的Team类如下所示: 笔记: 比赛和团队都有子类。我不确定这是否会影响局势。 我的persistence.xml中列出了Matchup和Team都包括在内。 如果我在两个getter方法上都使用@Transient批注,该错误将消失。 谁能阐明为什么会发生这种异常? 问题答案: 我发现了问题:我没有将Team类