Comment puis-je utiliser «clé étrangère» sur la doctrine?

Je fais la leçon système d'administration sur symfony2 et doctrine

Je suis confus de l'utiliser de clé étrangère dans la doctrine.

/Entity/User.php

class User extends BaseUser
{
    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     *@ORM\OneToOne(targetEntity="Acme\UserBundle\Entity\Lesson", inversedBy("teacher"))
     */
    protected $id;
    .
    .
}

/Entity/Lesson.php

class Lesson
{
    /**
     * @var integer
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;
    /**
     *
     * @ORM\OneToOne(targetEntity="Acme\UserBundle\Entity\User", inversedBy("id"))
     * @ORM\JoinColumn(name="user_id", referencedColumnName="id")
     */
    private $teacher;
    .
    .
}

Chaque "Leçon" a un enseignant inscrit dans User.php.

Comment puis-je écrire des annotations pour ce but?

Je suis également à la planification de chaque Leçon a plusieurs élèves de /l'Entité ou de l'Utilisateur.
Comment puis-je écrire des annotations pour ce but? (ManyToMany?)

J'ai fait des recherches ,mais je n'arrivais pas à trouver de bons documents pour la doctrine de l'annotation.

merci beaucoup

source d'informationauteur whitebear