Mam dwa modele o nazwach Person
i Tag
. Jedna osoba ma wiele znaczników, a klucz podstawowy tagu to klucz złożony z person_id
i tag
(Person $person
i w Doctrine2)."Brak odwzorowanego pola" przy użyciu częściowych zapytań i kluczy złożonych w Doctrine2
Istnieje pole danych (BLOB
) w modelu Tag
z dużą ilością danych. Przygotowuję zapytanie, które nie wymaga danych z tego pola, dlatego chcę skonfigurować zapytanie, które nie pobiera tego pola.
Próbowałem z następującym zapytaniem:
SELECT c, PARTIAL t.{tag} FROM Contact c LEFT JOIN c.tags
Tutaj pojawia się nieco oczekiwany błąd Częściowa zaznaczenia pola klasy Tag musi zawierać identyfikator. Nie ma problemu, mogę dodać pola kontaktowe:
SELECT c, PARTIAL t.{contact,tag} FROM Contact c LEFT JOIN c.tags
Ale teraz, mam Nie ma odwzorowane pola o nazwie „kontakt” na klasy Tag.
Czy Doctrine2 nie obsługuje częściowych zapytań dotyczących kluczy złożonych?
Oto klasa Tag:
/** @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;
}
dowiedziałeś się więcej na ten temat błąd @Nils? – jah
@jah, niestety nie. Musiałem podzielić model Tag na dwa obiekty, aby uzyskać ogromne kawałki danych z drogi.Tak, w ten sposób mogę wybrać obiekty TagData, gdy potrzebuję również danych. bardzo eleganckie rozwiązanie, ale łatwe do zrozumienia i udokumentowania. – Nils