と という 2 つのモデルがPerson
ありTag
ます。1 人には多くのタグがあり、タグの主キーはperson_id
and tag
( Doctrine2 の and )Person $person
の複合キーです。$tag
大量のデータを含むモデルにデータ フィールド ( BLOB
) があります。Tag
そのフィールドのデータを必要としないクエリを設定しているので、そのフィールドを取得しないクエリを設定したいと考えています。
次のクエリで試しました:
SELECT c, PARTIAL t.{tag} FROM Contact c LEFT JOIN c.tags
ここで、多少予想されるエラーThe partial field selection of class Tag must contain the identifier が表示されます。問題ありません。連絡先フィールドを追加します。
SELECT c, PARTIAL t.{contact,tag} FROM Contact c LEFT JOIN c.tags
しかし今、クラス Tag に 'contact' という名前のマップされたフィールドはありません。
Doctrine2 は複合キーの部分クエリをサポートしていませんか?
タグクラスは次のとおりです。
/** @Entity @Table(name="tag") **/
class Tag
{
/** @Id @ManyToOne(targetEntity="Contact",inversedBy="tags") @var Contact **/
protected $contact;
/** @Id @Column(type="string",length=10,nullable=false) @var string **/
protected $tag;
/** @Column(type="blob") **/
protected $data;
}