Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php &引用;“无映射字段”;在Doctrine2中使用部分查询和组合键时_Php_Doctrine_Doctrine Orm_Composite Primary Key - Fatal编程技术网

Php &引用;“无映射字段”;在Doctrine2中使用部分查询和组合键时

Php &引用;“无映射字段”;在Doctrine2中使用部分查询和组合键时,php,doctrine,doctrine-orm,composite-primary-key,Php,Doctrine,Doctrine Orm,Composite Primary Key,我有两个模型,分别是Person和Tag。一个人有许多标签,标签主键是Person\u id和Tag的组合键(Doctrine2中的Person$Person和$Tag) 标记模型中有一个包含大量数据的数据字段(BLOB)。我正在设置一个不需要该字段数据的查询,因此我希望设置一个不检索该字段的查询 我尝试了以下查询: SELECT c, PARTIAL t.{tag} FROM Contact c LEFT JOIN c.tags 在这里,我得到了某种预期的错误,class标记的部分字段选择必

我有两个模型,分别是
Person
Tag
。一个人有许多标签,标签主键是
Person\u id
Tag
的组合键(Doctrine2中的
Person$Person
$Tag

标记
模型中有一个包含大量数据的数据字段(
BLOB
)。我正在设置一个不需要该字段数据的查询,因此我希望设置一个不检索该字段的查询

我尝试了以下查询:

SELECT c, PARTIAL t.{tag} FROM Contact c LEFT JOIN c.tags
在这里,我得到了某种预期的错误,class标记的部分字段选择必须包含标识符。没问题,我添加了联系人字段:

SELECT c, PARTIAL t.{contact,tag} FROM Contact c LEFT JOIN c.tags
但是现在,我发现类标记上没有名为“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;
}

无论何时执行部分选择,都需要包含要从中选择的类的主键

您实际上还没有详细说明“Contact”实体,但我假设该类的主键字段是“id”。如果是这种情况,那么下面的查询将显示您的目标:

SELECT c, PARTIAL t.{id, tag} FROM Contact c LEFT JOIN c.tags
这似乎没有记录在案:(


您是否发现了有关此错误的更多信息@Nils?@jah,很遗憾,没有。我必须将标记模型拆分为两个对象,以消除巨大的数据块。这样,我可以在需要数据时选择标记数据对象。这不是一个非常优雅的解决方案,但易于理解和记录。