-1

次のような2つのテーブルがあります

レッスン

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 に答える