原则2:实体没有名为x的字段或关联

时间:2013-04-30 12:06:52

标签: php exception doctrine-orm associations dql

在使用doctrine来执行DQL的简单请求时,我遇到了一些麻烦。 在我的代码中找不到任何错误,所以我在这里问我的问题。

这是我试图执行的dcotrine查询:

$em->createQueryBuilder()->select('p')
  ->from('\lib\models\HarvestPage', 'p')
  ->where('(p.start_hp + ?1 <= p.end_hp OR p.end_hp = 0) AND p.label_hp NOT IN (SELECT r.label_hp FROM \lib\models\HarvestRequest r)')
  ->setMaxResults(1)
  ->setParameter(1, $nbPages)
  ->getQuery()
  ->useResultCache(false)
  ->getOneOrNullResult();

它抛出了我这个例外:

[Semantical Error] line 0, col 49 near 'start_hp + ?1': Error: Class lib\models\HarvestPage has no field or association named start_hp

最后,HarvestPage实体:

namespace lib\models;

/**
 * @Entity
 * @Table(name="harvest_page")
 */ 
class HarvestPage {
    /** @Id @Column(type="string", length=25) */
    private $label_hp;
    /** @Column(type="string", length=200, nullable=false) */
    private $link_hp;
    /** @Colum(type="smallint", nullable=false) */
    private $start_hp;
    /** @Colum(type="smallint", nullable=false) */
    private $end_hp;
}

正确创建并填充表“harvest_page”。 我尝试了一些修复但没有成功:

  • 停用缓存
  • 尝试重命名字段

我该如何解决?

1 个答案:

答案 0 :(得分:2)

元数据的@Colum应为@Column