-1

我有两张桌子,例如

class Lesson
{
/**
 * @var integer
 *
 * @ORM\Column(name="id", type="integer")
 * @ORM\Id
 * @ORM\GeneratedValue(strategy="AUTO")
 */
private $id;

/**
 *
 * @ORM\OneToOne(targetEntity="Acme\UserBundle\Entity\EvalMutor", mappedBy="lesson")
 */

private $evalM;
}

在 EvalMutor

class EvalMutor
{
/**
 * @var integer
 *
 * @ORM\Column(name="id", type="integer")
 * @ORM\Id
 * @ORM\GeneratedValue(strategy="AUTO")
 */
private $id;


/**
 *
 * @ORM\ManyToOne(targetEntity="Acme\UserBundle\Entity\Lesson", inversedBy="evalM")
 * @ORM\JoinColumn(name="lesson", referencedColumnName="id")
 */

private $lesson;


/**
 * @ORM\Column(type="text",nullable=true)
 *
 */
private $comment;
}

有些课程的行有 evalM,有些则没有。

我想选择没有 evalM 的课程行。

SELECT p FROM UserBundle:Lesson p Where p.evalM is null

但是它返回

A single-valued association path expression to an inverse side is not supported in DQL queries. Use an explicit join instead.   

我该如何解决这个问题?

4

1 回答 1

1

首先,我猜这种关系是不正确的。当你应该放置时,你已经放置了OneToOne关系OneToMany。我说$evalM的是注释。

有关更多信息,您可以查看

于 2013-09-22T10:47:22.683 回答