title: The abstract schema type is unknown
body: <p>I'm using Spring 3.2.3, JPA 2.1, JUnit 4.11.  I'm trying to run a junit test and I keep getting the abstract schema type is unknown error.  Here is my entity (truncated for space, it has all the getters and setters):</p>
  
  <pre><code>@Entity
  @Table(name = "WEB_PROFILES")
  public class TestWebProfile implements Serializable {
      private static final long serialVersionUID = 1L;
  
  @Transient
  private String forward;
  
  @Column(name = "ACCESS_FLAG")
  private String accessFlag;
  
  @Temporal(TemporalType.DATE)
  @Column(name = "ACCESS_FLAG_UPD_DATE")
  private Date accessFlagUpdDate;
  
  @Column(name = "ACCESS_RESET_INTERVAL")
  private BigDecimal accessResetInterval;
  
  @Column(name = "ACCOUNT_TYPE")
  private String accountType;
  
  @Column(name = "CREATED_BY")
  private String createdBy;
  
  @Column(name = "E_MAIL")
  private String eMail;
  
  @Column(name = "FAILED_LOGIN_ATTEMPTS")
  private BigDecimal failedLoginAttempts;
  
  @Column(name = "FIRST_NAME")
  private String firstName;
  
  @Temporal(TemporalType.DATE)
  @Column(name = "FROI_ACCESS_APPROVE_DENY_DATE")
  private Date froiAccessApproveDenyDate;
  
  @Column(name = "FROI_ACCESS_APPROVED_FLAG")
  private String froiAccessApprovedFlag;
  
  @Column(name = "FROI_ACCESS_REQUESTED")
  private String froiAccessRequested;
  
  @Column(name = "FROI_APPROVED_BY")
  private String froiApprovedBy;
  
  @Temporal(TemporalType.DATE)
  @Column(name = "FROI_CONFIRM_EMAIL_SENT_DATE")
  private Date froiConfirmEmailSentDate;
  
  @Temporal(TemporalType.DATE)
  @Column(name = "FROI_LETTER_SENT_DATE")
  private Date froiLetterSentDate;
  
  @Column(name = "LAST_LOGON_ADDR")
  private String lastLogonAddr;
  
  @Temporal(TemporalType.DATE)
  @Column(name = "LAST_LOGON_DATE")
  private Date lastLogonDate;
  
  @Column(name = "LAST_NAME")
  private String lastName;
  
  @Column(name = "LAST_UPDATED_BY")
  private String lastUpdatedBy;
  
  @Column(name = "LAST_UPDATED_BY_NAME")
  private String lastUpdatedByName;
  
  @Column(name = "LAST_UPDATED_BY_SU_ID")
  private BigDecimal lastUpdatedBySuId;
  
  @Temporal(TemporalType.DATE)
  @Column(name = "MAIL_SENT_DATE")
  private Date mailSentDate;
  
  @Temporal(TemporalType.DATE)
  @Column(name = "MAINT_DATE")
  private Date maintDate;
  
  @Temporal(TemporalType.DATE)
  @Column(name = "NEW_PIN_REQ_DATE")
  private Date newPinReqDate;
  
  @Column(name = "PASSWORD")
  private String password;
  
  @Transient
  private String newPassword;
  
  @Temporal(TemporalType.DATE)
  @Column(name = "PASSWORD_UPD_DATE")
  private Date passwordUpdDate;
  
  @Column(name = "PHONE")
  private String phone;
  
  @Column(name = "PIN")
  private String pin;
  
  @Column(name = "POLICY_NUM")
  private BigDecimal policyNo;
  
  @Column(name = "PROFILE_CLASS_CODE")
  private String profileClassCode;
  
  @Temporal(TemporalType.DATE)
  @Column(name = "PROFILE_REQ_DATE")
  private Date profileReqDate;
  
  @Temporal(TemporalType.DATE)
  @Column(name = "PROFILE_UPDATE_DATE")
  private Date profileUpdateDate;
  
  @Column(name = "REMOTE_ADDR")
  private String remoteAddr;
  
  @Column(name = "SESSIONID")
  private String sessionid;
  
  @Column(name = "SUBSCRIBER_FLAG")
  private String subscriberFlag;
  
  @Column(name = "USER_ID")
  private BigDecimal userId;
  
  @Id
  @Column(name = "USER_NO")
  private BigDecimal userNo;
  
  @Column(name = "USERNAME")
  private String username;
  </code></pre>
  
  <p>My JUnit test:</p>
  
  <pre><code>@Test
  public void testGetWebProfileByUsername() {
  
      TestWebProfile wp = sso.getWebProfile("MARLENE");
      System.out.println("name :" + wp.getFirstName());
      System.out.println("last name :" + wp.getLastName());
  }
  </code></pre>
  
  <p>My DAO implementation:</p>
  
  <pre><code>@Override
      public TestWebProfile getWebProfile(String username) {
          String sqlString = "select w from TestWebProfile w where w.username =:username";
  
          return (TestWebProfile) getEntityManager()
                  .createQuery(sqlString, TestWebProfile.class)
                  .setParameter("username", username).getSingleResult();
      }
  </code></pre>
  
  <p>After Googling for the past hour, the only culprit I found that seem to make sense was not having the @Id and @Column annotations, but I have those on the userNo variable.  Any help that can be provided would be greatly appreciated!</p>