title: Unknown abstract schema type
body: <p>Based on the answer from axtavt, this is almost certainly a naming problem between Notebean and NoteBean.  Is there a particular convention to follow here, just normal CamelCase?</p>
  
  <p>I believe that I've updated the @NamedQuery annotation in the entity and am using those from the controller, and the names look to match, yet I'm still receiving that same error about the schema, which I can't get much information on.</p>
  
  <p>JPA controller:</p>
  
  <pre><code>package net.bounceme.dur.nntp.controller;
  
  import java.util.*;
  import java.util.logging.Logger;
  import javax.mail.Message;
  import javax.persistence.*;
  import javax.swing.DefaultListModel;
  import net.bounceme.dur.nntp.model.NoteBean;
  
  public class NotesController {
  
      private static final long serialVersionUID = 1L;
      private static final Logger LOG = Logger.getLogger(NotesController.class.getName());
      private Message message;
      private List&lt;NoteBean&gt; notes = new ArrayList&lt;NoteBean&gt;();
      private DefaultListModel defaultListModel = new DefaultListModel();
      private EntityManagerFactory emf;
      private EntityManager em;
      private String PERSISTENCE_UNIT_NAME = "nntpPU";
  
      public NotesController() {
          emf = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME);
          em = emf.createEntityManager();
          LOG.info("entity manager made???" + em.isOpen());
          populateList();
      }
  
      private void populateList() {
          LOG.info("open?" + em.isOpen());
          em.getTransaction().begin();
          LOG.info("trying to populate.....");
          //Query q = em.createQuery("SELECT n FROM NoteBean n WHERE n.id = :id");
          Query q = em.createNamedQuery("NoteBean.findAll");
          LOG.info(q.toString());
          List results = q.getResultList();
          em.getTransaction().commit();
          setNotes(results);
          DefaultListModel dlm = new DefaultListModel();
          for (NoteBean n : getNotes()) {
              dlm.addElement(n);
          }
          setDefaultListModel(dlm);
      }
  
      public Message getMessage() {
          return message;
      }
  
      public void addNote(NoteBean noteBean) {
          LOG.info(noteBean.toString());
          em.getTransaction().begin();
          em.persist(noteBean);
          em.getTransaction().commit();
          populateList();
      }
  
      public void setMessage(Message message) {
          this.message = message;
      }
  
      private List&lt;NoteBean&gt; getNotes() {
          return notes;
      }
  
      private void setNotes(List&lt;NoteBean&gt; notes) {
          this.notes = notes;
      }
  
      public DefaultListModel getDefaultListModel() {
          return defaultListModel;
      }
  
      public void setDefaultListModel(DefaultListModel defaultListModel) {
          this.defaultListModel = defaultListModel;
      }
  }
  </code></pre>
  
  <p>entity:</p>
  
  <pre><code>package net.bounceme.dur.nntp.model;
  
  import java.io.Serializable;
  import java.util.Date;
  import javax.persistence.*;
  import javax.xml.bind.annotation.XmlRootElement;
  
  @Entity
  @Table(name = "NOTEBEAN", catalog = "nntp", schema = "")
  @XmlRootElement
  @NamedQueries({
      @NamedQuery(name = "NoteBean.findAll", query = "SELECT n FROM NoteBean n"),
      @NamedQuery(name = "NoteBean.findById", query = "SELECT n FROM Notebean n WHERE n.id = :id"),
      @NamedQuery(name = "NoteBean.findByStamp", query = "SELECT n FROM Notebean n WHERE n.stamp = :stamp"),
      @NamedQuery(name = "NoteBean.findByNote", query = "SELECT n FROM Notebean n WHERE n.note = :note")
  })
  public class NoteBean implements Serializable {
  
      private static final long serialVersionUID = 1L;
      @Id
      @Basic(optional = false)
      @Column(name = "ID", nullable = false)
      private Long id;
      @Column(name = "STAMP")
      @Temporal(TemporalType.DATE)
      private Date stamp;
      @Column(name = "NOTE", length = 255)
      private String note;
  
      public NoteBean() {
      }
  
      public NoteBean(Long id) {
          this.id = id;
      }
  
      public Long getId() {
          return id;
      }
  
      public void setId(Long id) {
          this.id = id;
      }
  
      public Date getStamp() {
          return stamp;
      }
  
      public void setStamp(Date stamp) {
          this.stamp = stamp;
      }
  
      public String getNote() {
          return note;
      }
  
      public void setNote(String note) {
          this.note = note;
      }
  
      @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 NoteBean)) {
              return false;
          }
          NoteBean other = (NoteBean) 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 "net.bounceme.dur.nntp.model.Notebean[ id=" + id + " ]";
      }
  }
  </code></pre>
  
  <p>run-time error:</p>
  
  <pre><code>init:
  Deleting: /home/thufir/NetBeansProjects/SwingNNTP/build/built-jar.properties
  deps-jar:
  Updating property file: /home/thufir/NetBeansProjects/SwingNNTP/build/built-jar.properties
  Compiling 2 source files to /home/thufir/NetBeansProjects/SwingNNTP/build/classes
  warning: [options] bootstrap class path not set in conjunction with -source 1.5
  Note: /home/thufir/NetBeansProjects/SwingNNTP/src/net/bounceme/dur/nntp/controller/NotesController.java uses unchecked or unsafe operations.
  Note: Recompile with -Xlint:unchecked for details.
  1 warning
  compile:
  run:
  May 03, 2012 7:23:05 AM net.bounceme.dur.nntp.PropertiesReader getProps
  INFO: NNTP.loadMessages...
  May 03, 2012 7:23:06 AM net.bounceme.dur.nntp.controller.MessagesEnum &lt;init&gt;
  INFO: starting controller..
  [TopLink Info]: 2012.05.03 07:23:10.319--ServerSession(10922033)--TopLink, version: Oracle TopLink Essentials - 2.0.1 (Build b09d-fcs (12/06/2007))
  Exception in thread "AWT-EventQueue-0" Local Exception Stack: 
  Exception [TOPLINK-8034] (Oracle TopLink Essentials - 2.0.1 (Build b09d-fcs (12/06/2007))): oracle.toplink.essentials.exceptions.EJBQLException
  Exception Description: Error compiling the query [NoteBean.findByNote: SELECT n FROM Notebean n WHERE n.note = :note]. Unknown abstract schema type [Notebean].
      at oracle.toplink.essentials.exceptions.EJBQLException.unknownAbstractSchemaType(EJBQLException.java:494)
      at oracle.toplink.essentials.internal.parsing.ParseTreeContext.classForSchemaName(ParseTreeContext.java:163)
      at oracle.toplink.essentials.internal.parsing.SelectNode.getClassOfFirstVariable(SelectNode.java:366)
      at oracle.toplink.essentials.internal.parsing.SelectNode.getReferenceClass(SelectNode.java:354)
      at oracle.toplink.essentials.internal.parsing.ParseTree.getReferenceClass(ParseTree.java:463)
      at oracle.toplink.essentials.internal.parsing.ParseTree.adjustReferenceClassForQuery(ParseTree.java:103)
      at oracle.toplink.essentials.internal.parsing.EJBQLParseTree.populateReadQueryInternal(EJBQLParseTree.java:127)
      at oracle.toplink.essentials.internal.parsing.EJBQLParseTree.populateQuery(EJBQLParseTree.java:108)
      at oracle.toplink.essentials.internal.ejb.cmp3.base.EJBQueryImpl.buildEJBQLDatabaseQuery(EJBQueryImpl.java:219)
      at oracle.toplink.essentials.queryframework.EJBQLPlaceHolderQuery.processEjbQLQuery(EJBQLPlaceHolderQuery.java:111)
      at oracle.toplink.essentials.internal.sessions.AbstractSession.processEJBQLQueries(AbstractSession.java:2059)
      at oracle.toplink.essentials.internal.sessions.AbstractSession.processEJBQLQueries(AbstractSession.java:2046)
      at oracle.toplink.essentials.internal.sessions.DatabaseSessionImpl.postConnectDatasource(DatabaseSessionImpl.java:724)
      at oracle.toplink.essentials.internal.sessions.DatabaseSessionImpl.loginAndDetectDatasource(DatabaseSessionImpl.java:604)
      at oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider.login(EntityManagerFactoryProvider.java:280)
      at oracle.toplink.essentials.internal.ejb.cmp3.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:229)
      at oracle.toplink.essentials.internal.ejb.cmp3.base.EntityManagerFactoryImpl.getServerSession(EntityManagerFactoryImpl.java:93)
      at oracle.toplink.essentials.internal.ejb.cmp3.base.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:126)
      at oracle.toplink.essentials.internal.ejb.cmp3.base.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:120)
      at oracle.toplink.essentials.internal.ejb.cmp3.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:91)
      at net.bounceme.dur.nntp.controller.NotesController.&lt;init&gt;(NotesController.java:23)
      at net.bounceme.dur.nntp.gui.Detail.&lt;init&gt;(Detail.java:20)
      at net.bounceme.dur.nntp.gui.NewFrame.initComponents(NewFrame.java:30)
      at net.bounceme.dur.nntp.gui.NewFrame.&lt;init&gt;(NewFrame.java:17)
      at net.bounceme.dur.nntp.gui.NewFrame$2.run(NewFrame.java:62)
      at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
      at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:705)
      at java.awt.EventQueue.access$000(EventQueue.java:101)
      at java.awt.EventQueue$3.run(EventQueue.java:666)
      at java.awt.EventQueue$3.run(EventQueue.java:664)
      at java.security.AccessController.doPrivileged(Native Method)
      at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
      at java.awt.EventQueue.dispatchEvent(EventQueue.java:675)
      at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
      at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
      at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
      at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
      at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
      at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
  BUILD SUCCESSFUL (total time: 10 seconds)
  </code></pre>
  
  <p>Just for reference, mysql console output:</p>
  
  <pre><code>mysql&gt; describe nntp.NOTEBEAN;
  +-------+--------------+------+-----+---------+-------+
  | Field | Type         | Null | Key | Default | Extra |
  +-------+--------------+------+-----+---------+-------+
  | ID    | bigint(20)   | NO   | PRI | NULL    |       |
  | STAMP | date         | YES  |     | NULL    |       |
  | NOTE  | varchar(255) | YES  |     | NULL    |       |
  +-------+--------------+------+-----+---------+-------+
  3 rows in set (0.00 sec)
  
  mysql&gt; 
  mysql&gt; select * from nntp.NOTEBEAN;
  Empty set (0.04 sec)
  
  mysql&gt; 
  </code></pre>