title: Query argument foo not found in the list of parameters provided during query execution
body: <p><a href="http://www.objectdb.com/java/jpa/query/parameter" rel="nofollow">How</a> do I set the parameter for the argument of the query below:</p>
  
  <p>entity:</p>
  
  <pre><code>package net.bounceme.dur.usenet.model;
  
  import java.io.Serializable;
  import java.util.logging.Logger;
  import javax.mail.Folder;
  import javax.mail.Message;
  import javax.persistence.*;
  import net.bounceme.dur.usenet.driver.FetchBean;
  
  @Entity
  public class Article implements Serializable {
  
      private static final long serialVersionUID = 1L;
      private static final Logger LOG = Logger.getLogger(Article.class.getName());
      @Id
      @GeneratedValue(strategy = GenerationType.IDENTITY)
      private Long id;
      @Column
      private int messageNumber;
      @ManyToOne(cascade = CascadeType.PERSIST)
      private Newsgroup newsgroup;
  
      public Article() {
      }
  
      public Article(Message message, Folder folder) {
          messageNumber = message.getMessageNumber();
          EntityManagerFactory emf;
          EntityManager em;
          emf = Persistence.createEntityManagerFactory("USENETPU");
          em = emf.createEntityManager();
          String ng = folder.getFullName();
          Query query = em.createQuery("SELECT n FROM Newsgroup n WHERE n.newsgroup = :newsgroup", Newsgroup.class);
          Newsgroup result = (Newsgroup) query.getSingleResult();
          newsgroup = (result == null) ? new Newsgroup(folder) : result;
      }
  
      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 Article)) {
              return false;
          }
          Article other = (Article) 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 "\nmessageNumber\t" + messageNumber;
      }
  
      public int getMessageNumber() {
          return messageNumber;
      }
  
      public void setMessageNumber(int messageNumber) {
          this.messageNumber = messageNumber;
      }
  }
  </code></pre>
  
  <p>Stack trace:</p>
  
  <pre><code>run:
  DEBUG: nntp: newsrc loading /home/thufir/.newsrc
  DEBUG: nntp: newsrc load: 5 groups in 39ms
  [EL Info]: 2012-08-03 03:26:30.737--ServerSession(13970219)--EclipseLink, version: Eclipse Persistence Services - 2.3.0.v20110604-r9504
  [EL Info]: 2012-08-03 03:26:31.815--ServerSession(13970219)--file:/home/thufir/NetBeansProjects/USENET/build/classes/_USENETPU login successful
  Aug 03, 2012 3:26:32 AM net.bounceme.dur.usenet.driver.FetchBean &lt;init&gt;
  INFO: [gwene.com.androidcentral, gwene.com.blogspot.emacsworld, gwene.com.blogspot.googlecode, gwene.com.blogspot.googlereader, gwene.com.economist]
  Aug 03, 2012 3:26:32 AM net.bounceme.dur.usenet.driver.FetchBean &lt;init&gt;
  INFO: Google helping out newcomers with Nexus 7 getting started video
  Aug 03, 2012 3:26:33 AM net.bounceme.dur.usenet.driver.FetchBean main
  SEVERE: null
  java.lang.IllegalStateException: Query argument newsgroup not found in the list of parameters provided during query execution.
      at org.eclipse.persistence.internal.jpa.EJBQueryImpl.processParameters(EJBQueryImpl.java:829)
      at org.eclipse.persistence.internal.jpa.EJBQueryImpl.executeReadQuery(EJBQueryImpl.java:406)
      at org.eclipse.persistence.internal.jpa.EJBQueryImpl.getSingleResult(EJBQueryImpl.java:773)
      at net.bounceme.dur.usenet.model.Article.&lt;init&gt;(Article.java:34)
      at net.bounceme.dur.usenet.driver.FetchBean.&lt;init&gt;(FetchBean.java:41)
      at net.bounceme.dur.usenet.driver.FetchBean.main(FetchBean.java:21)
  
  BUILD SUCCESSFUL (total time: 13 seconds)
  </code></pre>
  
  <p>The named parameter should be <code>ng</code>, for newsgroup name, but I can't seem to get the syntax to query for that string in the <code>Newsgroup.newsgroup</code> field.  How do I fix the query?</p>
  
  <p>-------------EDIT----------------</p>
  
  <p>new trace:</p>
  
  <pre><code>run:
  DEBUG: nntp: newsrc loading /home/thufir/.newsrc
  DEBUG: nntp: newsrc load: 5 groups in 30ms
  [EL Info]: 2012-08-03 03:57:03.647--ServerSession(33288487)--EclipseLink, version: Eclipse Persistence Services - 2.3.0.v20110604-r9504
  [EL Info]: 2012-08-03 03:57:04.691--ServerSession(33288487)--file:/home/thufir/NetBeansProjects/USENET/build/classes/_USENETPU login successful
  Aug 03, 2012 3:57:05 AM net.bounceme.dur.usenet.driver.FetchBean &lt;init&gt;
  INFO: [gwene.com.androidcentral, gwene.com.blogspot.emacsworld, gwene.com.blogspot.googlecode, gwene.com.blogspot.googlereader, gwene.com.economist]
  Aug 03, 2012 3:57:05 AM net.bounceme.dur.usenet.driver.FetchBean &lt;init&gt;
  INFO: Google helping out newcomers with Nexus 7 getting started video
  Aug 03, 2012 3:57:06 AM net.bounceme.dur.usenet.driver.FetchBean main
  SEVERE: null
  java.lang.IllegalArgumentException: You have attempted to set a parameter value using a name of gwene.com.androidcentral that does not exist in the query string SELECT n FROM Newsgroup n WHERE n.newsgroup = :ng.
      at org.eclipse.persistence.internal.jpa.EJBQueryImpl.setParameterInternal(EJBQueryImpl.java:1256)
      at org.eclipse.persistence.internal.jpa.EJBQueryImpl.setParameter(EJBQueryImpl.java:1138)
      at org.eclipse.persistence.internal.jpa.EJBQueryImpl.setParameter(EJBQueryImpl.java:81)
      at net.bounceme.dur.usenet.model.Article.&lt;init&gt;(Article.java:34)
      at net.bounceme.dur.usenet.driver.FetchBean.&lt;init&gt;(FetchBean.java:41)
      at net.bounceme.dur.usenet.driver.FetchBean.main(FetchBean.java:21)
  
  BUILD SUCCESSFUL (total time: 17 seconds)
  </code></pre>
  
  <p>code snippet:</p>
  
  <pre><code>String ng = folder.getFullName();
          Query query = em.createQuery("SELECT n FROM Newsgroup n WHERE n.newsgroup = :ng", Newsgroup.class);
          query.setParameter(ng, ng);   //newsgroup object????
          Newsgroup result = (Newsgroup) query.getSingleResult();
          LOG.info(result.toString());
          newsgroup = (result == null) ? new Newsgroup(folder) : result;
  </code></pre>
  
  <p>I'm playing around with it and will no doubt get it, just need to read the <a href="http://docs.oracle.com/javaee/6/tutorial/doc/bnbrg.html" rel="nofollow">docs</a> and <a href="http://docs.oracle.com/javaee/5/api/javax/persistence/Query.html#setParameter%28java.lang.String,%20java.lang.Object%29" rel="nofollow">API</a> a bit more, but it's close enough :)</p>