我有 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似乎只允许使用实体属性的字符串值来查找实体,并且一次只有一个。