title: Table 'customerjpa.sequence' doesn't exist JPA
body: <p>I am facing following problem while inserting data into table using single inheritance in jpa.</p>
  
  <pre><code>    run:
  [EL Info]: 2014-04-17 22:40:45.947--ServerSession(863001717)--EclipseLink, version: Eclipse Persistence Services - 2.2.0.v20110202-r8913
  [EL Info]: 2014-04-17 22:40:46.387--ServerSession(863001717)--file:/C:/Users/xone/Documents/NetBeansProjects/JPAAditiDAS/build/classes/_TESTJPAPU login successful
  [EL Warning]: 2014-04-17 22:40:46.469--ClientSession(1037426453)--Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.2.0.v20110202-r8913): org.eclipse.persistence.exceptions.DatabaseException
  Internal Exception: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'customerjpa.sequence' doesn't exist
  Error Code: 1146
  Call: UPDATE SEQUENCE SET SEQ_COUNT = SEQ_COUNT + ? WHERE SEQ_NAME = ?
      bind =&gt; [2 parameters bound]
  Query: DataModifyQuery(name="SEQUENCE" sql="UPDATE SEQUENCE SET SEQ_COUNT = SEQ_COUNT + ? WHERE SEQ_NAME = ?")
  Exception in thread "main" Local Exception Stack: 
  Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.2.0.v20110202-r8913): org.eclipse.persistence.exceptions.DatabaseException
  Internal Exception: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'customerjpa.sequence' doesn't exist
  Error Code: 1146
  Call: UPDATE SEQUENCE SET SEQ_COUNT = SEQ_COUNT + ? WHERE SEQ_NAME = ?
      bind =&gt; [2 parameters bound]
  Query: DataModifyQuery(name="SEQUENCE" sql="UPDATE SEQUENCE SET SEQ_COUNT = SEQ_COUNT + ? WHERE SEQ_NAME = ?")
      at org.eclipse.persistence.exceptions.DatabaseException.sqlException(DatabaseException.java:324)
      at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeDirectNoSelect(DatabaseAccessor.java:798)
      at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeNoSelect(DatabaseAccessor.java:864)
      at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.basicExecuteCall(DatabaseAccessor.java:583)
      at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeCall(DatabaseAccessor.java:526)
      at org.eclipse.persistence.internal.sessions.AbstractSession.basicExecuteCall(AbstractSession.java:1729)
      at org.eclipse.persistence.sessions.server.ClientSession.executeCall(ClientSession.java:234)
      at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:207)
      at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:193)
      at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeNoSelectCall(DatasourceCallQueryMechanism.java:236)
      at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeNoSelect(DatasourceCallQueryMechanism.java:216)
      at org.eclipse.persistence.queries.DataModifyQuery.executeDatabaseQuery(DataModifyQuery.java:85)
      at org.eclipse.persistence.queries.DatabaseQuery.execute(DatabaseQuery.java:808)
      at org.eclipse.persistence.internal.sessions.AbstractSession.internalExecuteQuery(AbstractSession.java:2800)
      at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1521)
      at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1503)
      at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1477)
      at org.eclipse.persistence.sequencing.QuerySequence.update(QuerySequence.java:336)
      at org.eclipse.persistence.sequencing.QuerySequence.updateAndSelectSequence(QuerySequence.java:275)
      at org.eclipse.persistence.sequencing.StandardSequence.getGeneratedVector(StandardSequence.java:71)
      at org.eclipse.persistence.sequencing.DefaultSequence.getGeneratedVector(DefaultSequence.java:163)
      at org.eclipse.persistence.sequencing.Sequence.getGeneratedVector(Sequence.java:257)
      at org.eclipse.persistence.internal.sequencing.SequencingManager$Preallocation_Transaction_NoAccessor_State.getNextValue(SequencingManager.java:474)
      at org.eclipse.persistence.internal.sequencing.SequencingManager.getNextValue(SequencingManager.java:961)
      at org.eclipse.persistence.internal.sequencing.ClientSessionSequencing.getNextValue(ClientSessionSequencing.java:70)
      at org.eclipse.persistence.internal.descriptors.ObjectBuilder.assignSequenceNumber(ObjectBuilder.java:292)
      at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.assignSequenceNumber(UnitOfWorkImpl.java:454)
      at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.registerNotRegisteredNewObjectForPersist(UnitOfWorkImpl.java:4190)
      at org.eclipse.persistence.internal.sessions.RepeatableWriteUnitOfWork.registerNotRegisteredNewObjectForPersist(RepeatableWriteUnitOfWork.java:493)
      at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.registerNewObjectForPersist(UnitOfWorkImpl.java:4135)
      at org.eclipse.persistence.internal.jpa.EntityManagerImpl.persist(EntityManagerImpl.java:406)
      at test.SingleInheritenceCustTest.main(SingleInheritenceCustTest.java:35)
  Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'customerjpa.sequence' doesn't exist
      at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
      at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
      at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
      at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
      at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
      at com.mysql.jdbc.Util.getInstance(Util.java:386)
      at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1053)
      at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4120)
      at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4052)
      at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2503)
      at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2664)
      at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2794)
      at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2155)
      at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2458)
      at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2375)
      at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2359)
      at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeDirectNoSelect(DatabaseAccessor.java:789)
      ... 30 more
  Java Result: 1
  BUILD SUCCESSFUL (total time: 2 seconds)
  </code></pre>
  
  <p>Main Class:</p>
  
  <pre><code>package test;
  
  import java.util.List;
  
  import javax.persistence.EntityManager;
  import javax.persistence.EntityManagerFactory;
  import javax.persistence.EntityTransaction;
  import javax.persistence.Persistence;
  import javax.persistence.Query;
  
  import entity.CustomerSingle;
  import entity.OnlineCustomer;
  
  /*
   * This is a test class for testing Single table inheritance
   */
  public class SingleInheritenceCustTest {
  
      public static void main(String[] args) {
          EntityManagerFactory entityManagerFactory =  Persistence.createEntityManagerFactory("TESTJPAPU");
  
          EntityManager em = entityManagerFactory.createEntityManager();
          EntityTransaction userTransaction = em.getTransaction();
  
      userTransaction.begin();
      //inserting Customer
      CustomerSingle customer = new CustomerSingle();
      customer.setFirstName("Antony");
      customer.setLastName("John");
      customer.setCustType("RETAIL");
      customer.getAddress().setStreet("1 Broad street");
      customer.getAddress().setAppt("111");
      customer.getAddress().setCity("NewYork");
      customer.getAddress().setZipCode("23456");
      em.persist(customer);
      inserting Online Customer
      OnlineCustomer onlineCust = new OnlineCustomer();
      onlineCust.setFirstName("Henry");
      onlineCust.setLastName("Ho");
      onlineCust.setCustType("ONLINE");
      onlineCust.getAddress().setStreet("1 Mission Street");
      onlineCust.getAddress().setAppt("222");
      onlineCust.getAddress().setCity("Seatle");
      onlineCust.getAddress().setZipCode("33345");
      onlineCust.setWebsite("www.amazon.com");
      em.persist(onlineCust);
      userTransaction.commit();
  
      // fetch only the online customers
      /*Query query = em.createQuery("SELECT customer FROM ONLINECUSTOMER customer");
      List&lt;OnlineCustomer&gt; list= query.getResultList();
      System.out.println("The list is: "+ list);
      for(int i=0;i&lt;list.size();i++){
          System.out.println("ONLINE CUSTOMER ["+ i +"] " +  list.get(i));
      }*/
      em.close();
      entityManagerFactory.close();
  
  
  }
  </code></pre>
  
  <p>}</p>
  
  <p>Entity Class CustomerSingle:
  It contains common features of customer. It  is used to insert data by using discrimination value "RETAIL"</p>
  
  <pre><code>package entity;
  import javax.persistence.*;
  
  import java.io.Serializable;
  import java.util.Date;
  /*
   * CUSTOMER ENTITY CLASS -&gt; This is an example of Single table inheritance
   */
      @Table(name="CUSTOMER")
      @Entity(name = "CUSTOMER2") //Name of the entity
      @Inheritance(strategy=InheritanceType.SINGLE_TABLE)
      @DiscriminatorColumn(name="CUST_TYPE", discriminatorType=DiscriminatorType.STRING,length=10)
      @DiscriminatorValue("RETAIL")
  
  public class CustomerSingle implements Serializable{
      @Id //signifies the primary key
      @Column(name = "CUST_ID", nullable = false)
      @GeneratedValue(strategy = GenerationType.AUTO)
      private long custId;
  
      @Column(name = "FIRST_NAME", nullable = false,length = 50)
      private String firstName;
  
      @Column(name = "LAST_NAME", length = 50)
      private String lastName;
  
      @Embedded
      private Address address = new Address();
  
      @Column(name = "CUST_TYPE", length = 10)
      private String custType;
  
      @Column(name = "LAST_UPDATED_TIME")
               @Temporal(TemporalType.TIMESTAMP)
      private Date updatedTime;
  
      public long getCustId() {
          return custId;
      }
  
      public void setCustId(long custId) {
          this.custId = custId;
      }
  
  
      public String getFirstName() {
          return firstName;
      }
  
      public void setFirstName(String firstName) {
          this.firstName = firstName;
      }
  
      public String getLastName() {
          return lastName;
      }
  
      public void setLastName(String lastName) {
          this.lastName = lastName;
      }
  
      public Date getUpdatedTime() {
          return updatedTime;
      }
  
      public void setUpdatedTime(Date updatedTime) {
          this.updatedTime = updatedTime;
      }
      public Address getAddress() {
          return address;
      }
  
      public void setAddress(Address address) {
          this.address = address;
      }
  
      public String getCustType() {
          return custType;
      }
  
  
  
  public void setCustType(String custType) {
              this.custType = custType;
          }
  
  //      
  
       ToString()
              public String toString() {
                 StringBuffer sb = new StringBuffer();
                 sb.append("custId : " + custId);
                 sb.append("   First Name : " + firstName);
                 sb.append("   Last Name : " + lastName);
                 sb.append("   customer type : " + custType);
  
                 return sb.toString();
              }
  
  }
  </code></pre>
  
  <p>ONLINECUSTOMER is an another entity class which extends CUSTOMERSINGLE. It is used to insert data by usinf discrimination value "ONLINE" </p>
  
  <pre><code>package entity;
  import javax.persistence.*;
  
  
  /*
   * ONLINE CUSTOMER ENTITY CLASS -&gt; This is an example of Single table inheritance
   */
  
  @Entity(name = "ONLINECUSTOMER") //Name of the entity
  @DiscriminatorValue("ONLINE")
  
  public class OnlineCustomer extends CustomerSingle{
      @Column(name = "WEBSITE", length = 100)
      private String website;
  
      public String getWebsite() {
          return website;
      }
  
      public void setWebsite(String website) {
          this.website = website;
      }
  
      public String toString() {
           StringBuffer sb = new StringBuffer();
           sb.append(super.toString());
           sb.append(" website: "+website);
           return sb.toString();
      }
  </code></pre>
  
  <p>}</p>