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

时间:2011-05-10 14:12:12

标签: php orm doctrine-orm findby

我有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;
}

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

0 个答案:

没有答案