8

我有 3 个实体:

风格

颜色

文章

一篇文章与两个实体都具有多对一关系(一篇文章是样式和颜色的独特组合)。所有实体都有自动递增的代理整数索引。

我有一个样式实体和一个颜色实体,我想创建一篇新文章来链接这两个实体(如果尚不存在)。鉴于没有办法使用学说来做相当于('INSERT on DUPLICATE KEY UPDATE'),我需要找到与我的样式和颜色实体都有关系的任何文章。如果没有匹配项,则创建一个新实体。

如何在我的系统中找到与样式和颜色实体相关的任何文章实体?

/** 
 * @Entity 
 */
class Style{

    /** @Id @GeneratedValue @Column (type="integer") */
    private $id;
    /** @Column (name="name", type="string") */
    private $name;
    /**
     * @OneToMany(targetEntity="Article", mappedBy="style", cascade={"persist"})
     */
    private $articles;
}


class Colour{
    /** @Id @GeneratedValue @Column (type="integer") */
    private $id;
    /** @Column (name="name", type="string") */
    private $name;
}

class Article{

    /** @Id @GeneratedValue @Column (type="integer") */
    private $id;

    /**
     * @ManyToOne(targetEntity="Style", inversedBy="articles", cascade={"persist"})
     */
    private $style;

    /**
     * @ManyToOne(targetEntity="Colour", cascade={"persist"})
     */
    private $colour;
}

此处描述的“findBy”方法http://www.doctrine-project.org/docs/orm/2.0/en/reference/working-with-objects.html似乎只允许使用实体属性的字符串值来查找实体,并且一次只有一个。

4

0 回答 0