title: @OneToMany mappedBy maps to _____
body: <p>What does <code>mappedBy</code> map <strong>to</strong>?  Or, rather, what should it map to?</p>
  
  <p>The <code>headers</code> field below maps to <code>@Entity</code> <code>Foo</code> as per <code>@OneToMany</code> <a href="http://docs.oracle.com/javaee/6/api/javax/persistence/OneToMany.html" rel="noreferrer">docs</a>?  And then <code>Foo</code> would be a wrapper for <code>javax.mail.Header</code>?</p>
  
  <pre><code>package net.bounceme.dur.usenet.model;
  
  import java.io.Serializable;
  import java.util.ArrayList;
  import java.util.List;
  import java.util.logging.Level;
  import java.util.logging.Logger;
  import javax.mail.Header;
  import javax.mail.Message;
  import javax.mail.MessagingException;
  import javax.persistence.*;
  
  @Entity
  public class Articles implements Serializable {
  
      private static final long serialVersionUID = 1L;
      private static final Logger LOG = Logger.getLogger(Articles.class.getName());
      @Id
      @GeneratedValue(strategy = GenerationType.AUTO)
      private Long id;
      @Column
      private String subject;
  
      @OneToMany(mappedBy="foo")  //a wrapper for Header is needed?
      private List&lt;Header&gt; headers = new ArrayList&lt;&gt;();
  
      public Articles() {
      }
  
      public Articles(Message message) {
          try {
              subject = message.getSubject();
          } catch (MessagingException ex) {
              Logger.getLogger(Articles.class.getName()).log(Level.SEVERE, null, ex);
          }
      }
  
      public Long getId() {
          return id;
      }
  
      public void setId(Long id) {
          this.id = id;
      }
  
      @Override
      public int hashCode() {
          int hash = 0;
          hash += (id != null ? id.hashCode() : 0);
          return hash;
      }
  
      @Override
      public boolean equals(Object object) {
          // TODO: Warning - this method won't work in the case the id fields are not set
          if (!(object instanceof Articles)) {
              return false;
          }
          Articles other = (Articles) object;
          if ((this.id == null &amp;&amp; other.id != null) || (this.id != null &amp;&amp; !this.id.equals(other.id))) {
              return false;
          }
          return true;
      }
  
      @Override
      public String toString() {
          return subject;
      }
  
      public String getSubject() {
          return subject;
      }
  
      public void setSubject(String subject) {
          this.subject = subject;
      }
  }
  </code></pre>