ManyToOne作为ID的学说(symfony2)

格奥尔格

我正在使用Symfony2 LTS开发一个项目,并且需要为学说创建实体。在我的数据库模型中,我有一个OneToMany关系,这是PK的一部分。

Parent
+-------+--------------+-----+----------------+
| Field |     Type     | Key |     Extra      |
+-------+--------------+-----+----------------+
| id    | int(11)      | PRI | auto_increment |
| name  | varchar(255) |     |                |
+-------+--------------+-----+----------------+

MyChild
+--------------+---------+-----+----------------+
|    Field     |  Type   | Key |     Extra      |
+--------------+---------+-----+----------------+
| id           | int(11) | PRI | auto_increment |
| foreignId    | int(11) | PRI |                |
| other_fields | text    |     |                |
+--------------+---------+-----+----------------+

当我只创建一个id为@ORM\Idtehre的PHP Entity类时没有问题,但是当我尝试将ManyToOne作为ID添加时,出现错误

[Doctrine\ORM\Mapping\MappingException]                                                 
  Single id is not allowed on composite primary key in entity MyBundle\Entity\MyChild

Php类如下所示:

class MyChild
{
/**
 * @var int
 *
 * @ORM\Column(name="id", type="integer")
 * @ORM\Id
 * @ORM\GeneratedValue(strategy="AUTO")
 */
private $id;

/**
 * @var MyParent
 *
 * @ORM\Id
 * @ORM\ManyToOne(targetEntity="MyParent", inversedBy="childs")
 * @ORM\JoinColumn(name="foreignId", referencedColumnName="id")
 */
private $parent;
哥斯达黎加

您应该从$ parent中删除@ORM \ Id,并为$ id和$ parent创建UniqueConstraint。

/**
 * @ORM\Table(uniqueConstraints={
 *   @ORM\UniqueConstraint(
 *     columns={"id", "foreignId"}
 *   )
 * })))
 */
class MyChild
{
/**
 * @var int
 *
 * @ORM\Column(name="id", type="integer")
 * @ORM\Id
 * @ORM\GeneratedValue(strategy="AUTO")
 */
private $id;

/**
 * @var MyParent
 *
 * @ORM\ManyToOne(targetEntity="MyParent", inversedBy="childs")
 * @ORM\JoinColumn(name="foreignId", referencedColumnName="id")
 */
private $parent;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Symfony2学说manyToOne EntityNotFoundException

来自分类Dev

Symfony2学说将计数全部作为整数

来自分类Dev

symfony2学说oneone完整示例

来自分类Dev

Symfony2学说关联结果

来自分类Dev

Symfony2学说抛出NonUniqueResultException

来自分类Dev

使用YAML的Symfony2学说索引

来自分类Dev

Symfony2学说实体未水合

来自分类Dev

Symfony2学说Querybuilder全选

来自分类Dev

Symfony2与学说:findBy的嵌套条件

来自分类Dev

Symfony2学说创建查询

来自分类Dev

Symfony2学说NotIn问题

来自分类Dev

Symfony2学说关联结果

来自分类Dev

Symfony2:学说MySql数学函数

来自分类Dev

Symfony2学说查询生成器作为FROM子句中的子查询

来自分类Dev

从symfony2学说的结果中获取对象的价值

来自分类Dev

Symfony2学说在next()中进行迭代

来自分类Dev

Symfony2学说Qb STR_TO_DATE未知函数

来自分类Dev

Symfony2学说无法识别的字段:

来自分类Dev

Symfony2学说,如何仅获取特定表的列名

来自分类Dev

将mongodb命令转换为学说格式Symfony2

来自分类Dev

实体和MySQL中的学说数组类型(Symfony2)

来自分类Dev

symfony2:带有学说的本机查询

来自分类Dev

Symfony2学说ORM级联分离不起作用

来自分类Dev

Symfony2学说:如何禁用mysql连接?

来自分类Dev

Symfony2学说1062重复输入

来自分类Dev

Symfony2学说一对一映射

来自分类Dev

getRepository在foreach循环中失败,Symfony2学说

来自分类Dev

SQL转换为ORM学说Symfony2

来自分类Dev

Symfony学说:ManyToOne关系不起作用