私は3つのエンティティを持っています:
スタイル
色
論文
記事には、両方のエンティティとの多対一の関係があります (記事は、スタイルと色の独自の組み合わせです)。すべてのエンティティには、自動インクリメント サロゲート整数インデックスがあります。
Style エンティティと Color エンティティがあり、これら 2 つのエンティティをリンクする新しい記事を作成したいと考えています。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は、エンティティ プロパティの文字列値を使用してエンティティを検索することしかできないようです。 、一度に 1 つのみ。