title: JPA java.lang.IllegalArgumentException: Object: [ id=XYZ ] is not a known entity type
body: <p>I am faceing the following problem:
  when i run my programme i get the following exceptions:</p>
  
  <blockquote>
    <p>java.lang.IllegalArgumentException: Object: dviaufgabe1.MeinArtikel[
    id=25 ] is not a known entity type.   at</p>
    
    <blockquote>
      <p>org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.registerNewObjectForPersist(UnitOfWorkImpl.java:4128)
        at
      org.eclipse.persistence.internal.jpa.EntityManagerImpl.persist(EntityManagerImpl.java:406)
        at dviaufgabe1.DVIAufgabe1.persist(DVIAufgabe1.java:78)     at
      dviaufgabe1.DVIAufgabe1.erstelleBasisDaten(DVIAufgabe1.java:55)   at
      dviaufgabe1.DVIAufgabe1.main(DVIAufgabe1.java:22)</p>
    </blockquote>
  </blockquote>
  
  <p>or (for auto gen keys)</p>
  
  <blockquote>
    <p>java.lang.IllegalArgumentException: Object: dviaufgabe1.MeinArtikel[
    id=null ] is not a known entity type.     at
    org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.registerNewObjectForPersist(UnitOfWorkImpl.java:4128)
      at
    org.eclipse.persistence.internal.jpa.EntityManagerImpl.persist(EntityManagerImpl.java:406)
      at dviaufgabe1.DVIAufgabe1.persist(DVIAufgabe1.java:78)     at
    dviaufgabe1.DVIAufgabe1.erstelleBasisDaten(DVIAufgabe1.java:56)   at
    dviaufgabe1.DVIAufgabe1.main(DVIAufgabe1.java:22)</p>
  </blockquote>
  
  <p>MeinArtikel.java</p>
  
  <pre><code> @Entity
      public class MeinArtikel implements Serializable {
          private static final long serialVersionUID = 1L;
          @Id
          @GeneratedValue(strategy = GenerationType.AUTO)
          private Long artikelNummer;
  
          private String name;
          private String beschreibung;
          private long preis;
          private long lagerbestand;
  
          public Long getArtikelNummer() {
              return artikelNummer;
          }
  
          public String getBeschreibung() {
              return beschreibung;
          }
  
          public long getLagerbestand() {
              return lagerbestand;
          }
  
          public String getName() {
              return name;
          }
  
          public long getPreis() {
              return preis;
          }
  
          public void setBeschreibung(String beschreibung) {
              this.beschreibung = beschreibung;
          }
  
          public void setLagerbestand(long lagerbestand) {
              this.lagerbestand = lagerbestand;
          }
  
          public void setName(String name) {
              this.name = name;
          }
  
          public void setPreis(long preis) {
              this.preis = preis;
          }
  
          public void setArtikelNummer(Long id) {
              this.artikelNummer = id;
          }
  
          @Override
          public int hashCode() {
              int hash = 0;
              hash += (artikelNummer != null ? artikelNummer.hashCode() : 0);
              return hash;
          }
  
          @Override
          public boolean equals(Object object) {
              // TODO: Warning - this method won't work in the case the artikelNummer fields are not set
              if (!(object instanceof MeinArtikel)) {
                  return false;
              }
              MeinArtikel other = (MeinArtikel) object;
              if ((this.artikelNummer == null &amp;&amp; other.artikelNummer != null) || (this.artikelNummer != null &amp;&amp; !this.artikelNummer.equals(other.artikelNummer))) {
                  return false;
              }
              return true;
          }
  
          @Override
          public String toString() {
              return "dviaufgabe1.MeinArtikel[ id=" + artikelNummer + " ]";
          }
  </code></pre>
  
  <p>main class:</p>
  
  <pre><code>public class DVIAufgabe1 {
  
      /**
       * @param args the command line arguments
       */
      public static void main(String[] args) {
          erstelleBasisDaten();
      }
      public static void erstelleBasisDaten() {
          MeinArtikel a1 = new MeinArtikel();
  //        a1.setArtikelNummer(23L);
          a1.setName("Bachelor of Science - Informatik (WH)");
          a1.setBeschreibung("Informatik Bachelor der Westfälischen Hochschule");
          a1.setPreis(0L);
          a1.setLagerbestand(100L); 
  
          MeinArtikel a2 = new MeinArtikel();
  //                a2.setArtikelNummer(24L);
          a2.setName("Master of Science - Informatik (WH)");
          a2.setBeschreibung("Informatik Master der Westfälischen Hochschule");
          a2.setPreis(100L);
          a2.setLagerbestand(50L); 
  
          MeinArtikel a3 = new MeinArtikel();
  //                a3.setArtikelNummer(25L);
          a3.setName("Master of Science - Informatik (TU München)");
          a3.setBeschreibung("Informatik Master der TU München");
          a3.setPreis(10000L);
          a3.setLagerbestand(5L); 
  
          MeinArtikel a4 = new MeinArtikel();
  //                a4.setArtikelNummer(26L);
          a4.setName("Abitur NRW");
          a4.setBeschreibung("Abitur der Klasse 13");
          a4.setPreis(1000L);
          a4.setLagerbestand(500L); 
  
          persist(a1);
          persist(a2);
          persist(a3);
          persist(a4);
  
      }
  
      public static void persist(Object object) {
          EntityManagerFactory emf = Persistence.createEntityManagerFactory("DVIAufgabe1PU");
          EntityManager em = emf.createEntityManager();
          em.getTransaction().begin();
          try {
              em.persist(object);
              em.getTransaction().commit();
          } catch (Exception e) {
              e.printStackTrace();
              em.getTransaction().rollback();
          } finally {
              em.close();
          }
      }
  </code></pre>
  
  <p>persictence.xml</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
  &lt;persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"&gt;
    &lt;persistence-unit name="DVIAufgabe1PU" transaction-type="RESOURCE_LOCAL"&gt;
      &lt;provider&gt;org.eclipse.persistence.jpa.PersistenceProvider&lt;/provider&gt;
      &lt;class&gt;dviaufgabe1. MeinArtikel&lt;/class&gt;
      &lt;class&gt;dviaufgabe1.MeineKategorie&lt;/class&gt;
      &lt;properties&gt;
        &lt;property name="javax.persistence.jdbc.url" value="jdbc:derby://localhost:1527/DVIAufgabe1"/&gt;
        &lt;property name="javax.persistence.jdbc.password" value="myuser"/&gt;
        &lt;property name="javax.persistence.jdbc.driver" value="org.apache.derby.jdbc.ClientDriver"/&gt;
        &lt;property name="javax.persistence.jdbc.user" value="myuser"/&gt;
        &lt;property name="eclipselink.ddl-generation" value="drop-and-create-tables"/&gt;
      &lt;/properties&gt;
    &lt;/persistence-unit&gt;
  &lt;/persistence&gt;
  </code></pre>