学说2:使用实体关系查找实体

cal*_*die 8 php orm findby doctrine-orm

我有3个实体:

样式

颜色

文章

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

我有一个样式实体和一个颜色实体,我想创建一个链接这两个实体的新文章(如果还没有).鉴于没有办法使用doctrine进行等效的('INSERT on DUPLICATE KEY UPDATE'),我需要找到任何与我的Style和Color实体有关系的文章.如果没有匹配,则创建一个新实体.

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

/** 
 * @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;
}
Run Code Online (Sandbox Code Playgroud)

这里描述的'findBy'方法http://www.doctrine-project.org/docs/orm/2.0/en/reference/working-with-objects.html似乎只允许通过使用实体属性的字符串值来查找实体,而且一次只有其中一个.