title: "association refers to the inverse side field" & "mappings are inconsistent with each other"
body: <p>I have two Entities, one for reservations and one for tables where the reservations can be placed on.
  This entities have a ManyToMany relation. When I try to validate this schema I get the following errors:</p>
  
  <ul>
  <li>The mappings Test\TestBundle\Entity\Table#reservations and<br>
  Test\TestBundle\Entity\Reservation#tables are inconsistent with each
  other.  </li>
  <li>The association Test\TestBundle\Entity\Reservation#tables<br>
  refers to the inverse side field Test\TestBundle\Entity\Table#tables
  which does not exist.</li>
  </ul>
  
  <p>Can I get some help with this? I can't figure out what I'm doing wrong.</p>
  
  <p>Table Entity:</p>
  
  <pre><code>/**
  *
  * @ORM\Entity
  * @ORM\Table(name="tables")
  * @ORM\Entity(repositoryClass="Test\TestBundle\Repository\TableRepository")
  */
  class Table {    
   /**
   * @var integer $id
   * @ORM\ID
   * @ORM\Column(name="id", type="integer")
   * @ORM\GeneratedValue(strategy="AUTO")
   */
  private $id;
  
  /**
   * @ORM\Column(type="integer", length=3)
   */
  protected $nmbr;
  
  /**
   * @ORM\ManyToMany(targetEntity="Reservation", mappedBy="tables", cascade={"persist"})
   */
  private $reservations;
  
  
  public function addReservation($reservation) {
      $reservation-&gt;addTable($this);
      $this-&gt;reservations[] = $reservation;
  }
  
  
  
  public function getId() {
      return $this-&gt;id;
  }
  
  public function getNmbr() {
      return $this-&gt;nmbr;
  }
  
  public function getReservations() {
      return $this-&gt;reservations;
  }
  
  public function setId($id) {
      $this-&gt;id = $id;
  }
  
  public function setNmbr($nmbr) {
      $this-&gt;nmbr = $nmbr;
  }
  
  /**
   * overrides the array of reservations belonging to this tabke in $reservations
   * with the given array of reservations.
   * Also adds this table to every reservations in the array.
   *
   */
  public function setReservations($reservations) {
      foreach ($reservations as $reservation) {
          $reservation-&gt;addTable($this);
      }
      $this-&gt;reservations = $reservation;
  }
  
  public function __toString() {
      return (string)$this-&gt;getNmbr();
  }
  
  public function __construct() {
      parent::__construct();
      $this-&gt;reservations = new ArrayCollection();
  }
  </code></pre>
  
  <p>Reservation Entity:</p>
  
  <pre><code>/**
   * @ORM\Entity(repositoryClass="Test\TestBundle\Repository\ReservationRepository")
   * @ORM\Table(name="reservations")
   * @ORM\HasLifecycleCallbacks()
   */
  class Reservation {
  
  /**
   * @ORM\Id
   * @ORM\Column(type="integer")
   * @ORM\GeneratedValue(strategy="AUTO")
   */
  protected $id;    
  
   /**
   * @ORM\ManyToMany(targetEntity="Table", inversedBy="tables")
   * @ORM\JoinTable(name="reservation_table")
   **/
  protected $tables;    
  
  /**
   * @ORM\Column(type="string", length=32)
   */
  protected $firstname;
  
  /**
   * @ORM\Column(type="string", length=32)
   */
  protected $lastname;
  
  /**
   * @ORM\Column(type="string", length=32)
   */
  protected $phone;
  
  /**
   * @ORM\Column(type="string", length=32)
   */
  protected $email;
  
  /**
   * @ORM\Column(type="text",  nullable=true)
   */
  protected $message;
  
  /**
   * @ORM\Column(type="date")
   */
  protected $date;
  
   /**
   * @ORM\Column(type="string", length=32)
   */
  protected $timeFrom;
  
   /**
   * @ORM\Column(type="string", length=32)
   */
  protected $timeTo;
  
  public function addTable($table) {
      $this-&gt;tables[] = $table;
  }
  public function getTables() {
      return $this-&gt;tables;
  }
  
  public function getId() {
      return $this-&gt;id;
  }
  
  
  public function getFirstname() {
      return $this-&gt;firstname;
  }
  
  public function getLastname() {
      return $this-&gt;lastname;
  }
  
  public function getPhone() {
      return $this-&gt;phone;
  }
  
  public function getEmail() {
      return $this-&gt;email;
  }
  
  public function getMessage() {
      return $this-&gt;message;
  }
  
  public function getDate() {
      return $this-&gt;date;
  }
  
  public function getTimeFrom() {
      return $this-&gt;timeFrom;
  }
  
  public function getTimeTo() {
      return $this-&gt;timeTo;
  }
  
  public function setId($id) {
      $this-&gt;id = $id;
  }
  
  public function setTables($tables) {
      $this-&gt;tables = $tables;
  }
  
  public function setFirstname($firstname) {
      $this-&gt;firstname = $firstname;
  }
  
  public function setLastname($lastname) {
      $this-&gt;lastname = $lastname;
  }
  
  public function setPhone($phone) {
      $this-&gt;phone = $phone;
  }
  
  public function setEmail($email) {
      $this-&gt;email = $email;
  }
  
  public function setMessage($message) {
      $this-&gt;message = $message;
  }
  
  public function setDate($date) {
      $this-&gt;date = $date;
  }
  
  public function setTimeFrom($timeFrom) {
      $this-&gt;timeFrom = $timeFrom;
  }
  
  public function setTimeTo($timeTo) {
      $this-&gt;timeTo = $timeTo;
  }
  
  
  public function __construct() {
      $this-&gt;tables = new \Doctrine\Common\Collections\ArrayCollection();
  }
  </code></pre>