Tôi có hai mô hình được gọi là Person
và Tag
. Một người có nhiều thẻ và khóa chính của thẻ là khóa tổng hợp của person_id
và tag
(Person $person
và $tag
trong Doctrine2)."Không có trường được ánh xạ" khi sử dụng một phần truy vấn và các phím tổng hợp trong Doctrine2
Có trường dữ liệu (BLOB
) trong mô hình Tag
có nhiều dữ liệu. Tôi đang thiết lập một truy vấn không yêu cầu dữ liệu từ trường đó, vì vậy tôi muốn thiết lập truy vấn không truy xuất trường đó.
Tôi đã thử với các truy vấn sau đây:
SELECT c, PARTIAL t.{tag} FROM Contact c LEFT JOIN c.tags
Ở đây, tôi nhận được lỗi phần nào dự kiến Việc lựa chọn lĩnh vực phần của lớp Tag phải chứa số nhận dạng. Không có vấn đề, tôi thêm các lĩnh vực liên hệ:
SELECT c, PARTIAL t.{contact,tag} FROM Contact c LEFT JOIN c.tags
Nhưng bây giờ, tôi nhận được Không có lĩnh vực lập bản đồ có tên là 'tiếp xúc' trên lớp Tag.
Doctrine2 có hỗ trợ truy vấn một phần trên các phím tổng hợp không?
Đây là lớp 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;
}
bạn đã tìm ra bất kỳ thêm về điều này lỗi @Nils? – jah
@jah, thật không may, tôi đã phải tách mô hình Thẻ thành hai đối tượng để lấy các khối dữ liệu khổng lồ ra khỏi con đường. Bằng cách đó, tôi có thể chọn các đối tượng TagData khi tôi cần dữ liệu. một giải pháp rất thanh lịch, nhưng dễ hiểu và tài liệu. – Nils