title: What does this stacktrace mean?
body: <p>I've got an exception I don't understand:</p>
  
  <pre><code>[2012-10-09 08:59:56:152 CEST] 000000a0 SystemOut     O 08:59:56,151  INFO ArendesokningActionHandler:84 - i search
  [2012-10-09 08:59:56:152 CEST] 000000a0 SystemOut     O 08:59:56,152 DEBUG AnsokanDAOImpl:36 - 0. sökning utförs
  [2012-10-09 08:59:56:152 CEST] 000000a0 SystemOut     O 08:59:56,152 DEBUG AnsokanDAOImpl:38 - 1. sökning utförs
  [2012-10-09 08:59:56:160 CEST] 000000a0 SystemOut     O 08:59:56,160 DEBUG AnsokanDAOImpl:40 - 2. sökning utförs
  [2012-10-09 08:59:56:160 CEST] 000000a0 SystemOut     O 08:59:56,160 DEBUG AnsokanDAOImpl:42 - 3. sökning utförs
  [2012-10-09 08:59:56:160 CEST] 000000a0 SystemOut     O 08:59:56,160  INFO AnsokanDAOImpl:44 - sökning utförs
  [2012-10-09 08:59:56:167 CEST] 000000a0 SystemOut     O 08:59:56,165 ERROR AnsokanDAOImpl:48 - Kunde inte söka på: 1201322-3
  &lt;openjpa-2.1.1-SNAPSHOT-r422266:1141200 nonfatal user error&gt; org.apache.openjpa.persistence.ArgumentException: No metadata was found for type "class java.lang.String". The class is not enhanced.
  </code></pre>
  
  <p>Code is</p>
  
  <pre><code>@Stateless
  public class AnsokanDAOImpl implements AnsokanDAO {
  
      @PersistenceContext(unitName = EJBConstants.PERSISTENCE_UNIT_NAME)
      private EntityManager em;
  
      private final static Logger logger = Logger.getLogger(AnsokanDAOImpl.class);
  
  
      @SuppressWarnings("unchecked")
      public List&lt;Ansokan&gt; search(String search) {
          List&lt;Ansokan&gt; ansokningar = new ArrayList&lt;Ansokan&gt;();
          logger.debug("0. sökning utförs");
          try {
              logger.debug("1. sökning utförs");
              Query query = em.createNamedQuery("search");
              logger.debug("2. sökning utförs");
              query.setParameter("search", search);
              logger.debug("3. sökning utförs");
  
              logger.info("sökning utförs");
              ansokningar = (List&lt;Ansokan&gt;) query.getResultList();
              logger.info("antal träffar i sökning: "+ansokningar.size());            
          } catch(Exception e){ 
              logger.error("Kunde inte söka på: "+search, e);
          }
  
          return ansokningar;
      }
  </code></pre>
  
  <p>Can you help me?</p>
  
  <p>Here's the namedquery:</p>
  
  <pre><code>/**
   * Entity implementation class for Entity: Ansokan
   *
   */
  @Entity(name = "Ansokan")
  @Table(name="TP003_ANSOKAN")
  @NamedQueries({
      @NamedQuery(name = "search", query = "SELECT a FROM Ansokan a WHERE a.prvnummer LIKE :search"),
      @NamedQuery(name = "findAnsokanByNumId", query = "SELECT a FROM Ansokan a WHERE a.prvnummer.numId = :numId"),
  })
  </code></pre>
  
  <p>This is the complete Ansokan entity:</p>
  
  <pre><code>package se.prv.pandora.arendeprocess.entity;
  
  /**
   * @author Fredrik Gunnfors (adbfgu)
   *
   */
  
  import java.io.Serializable;
  import java.sql.Timestamp;
  import java.sql.Date;
  import java.util.ArrayList;
  import java.util.List;
  
  import javax.persistence.Column;
  import javax.persistence.Entity;
  import javax.persistence.GeneratedValue;
  import javax.persistence.GenerationType;
  import javax.persistence.Id;
  
  import javax.persistence.CascadeType;
  import javax.persistence.JoinColumn;
  import javax.persistence.ManyToOne;
  import javax.persistence.NamedQueries;
  import javax.persistence.NamedQuery;
  import javax.persistence.OneToMany;
  import javax.persistence.SequenceGenerator;
  import javax.persistence.Table;
  
  
  /**
   * Entity implementation class for Entity: Ansokan
   *
   */
  @Entity(name = "Ansokan")
  @Table(name="TP003_ANSOKAN")
  @NamedQueries({
      @NamedQuery(name = "search", query = "SELECT a FROM Ansokan a WHERE a.prvnummer LIKE :search"),
      @NamedQuery(name = "findAnsokanByNumId", query = "SELECT a FROM Ansokan a WHERE a.prvnummer.numId = :numId"),
  })
  
  
  public class Ansokan implements Serializable {
  
      private static final long serialVersionUID = 1L;
  
      @Id
      @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="Seq_ansokan_id")
      @SequenceGenerator(name="Seq_ansokan_id", sequenceName="SEQ_TP003_ANSID", allocationSize=1)
      @Column(name = "ANSID", nullable = false)
      private int ansId;
  
      @ManyToOne
      @JoinColumn(name="numId")
      PRVNummer prvnummer;
  
  
      private Integer systemTypId; 
      private Integer systemTypDelId; 
  
      private Timestamp loggTid; 
  
      @Column(name = "INGDATUM", length = 10)
      private Date ingivningsDatum;
  
      @Column(name = "STATUSID")
      private Integer statusId;
  
      @Column(name = "BENAMNING", length = 500)
      private String benamning; //ASTATUS
  
      @Column(name = "ANKDATUM", length = 10)
      private Date ankomstDatum;
  
      @Column(name = "INKDATUM", length = 10)
      private Date inkomDatum;
  
      @Column(name = "BESLUTSDATUM", length = 10)
      private Date beslutsDatum;
  
      @Column(name = "ANSVARIG_HANDLID")
      private Integer ansvarigHandlaggareId;
  
      @Column(name = "SKAPAD_HANDLID")
      private Integer skapadHandlaggareId;
  
      @Column(name = "EGENSKAPID")
      private Integer egenskapId;
  
      @Column(name = "PRIORITET", length = 1)
      private String prioritet; 
  
      @OneToMany(mappedBy="ansokan", cascade=CascadeType.ALL)
      private List&lt;ArbetsMomentLog&gt; arbetsuppgifter = new ArrayList&lt;ArbetsMomentLog&gt;();
  
  
  
      // Konstruktor
      public Ansokan() {
          super();
      }
  
  
      public int getAnsId() {
          return ansId;
      }
  
  
      public void setAnsId(int ansId) {
          this.ansId = ansId;
      }
  
  
      public PRVNummer getPrvnummer() {
          return prvnummer;
      }
  
  
      public void setPrvnummer(PRVNummer prvnummer) {
          this.prvnummer = prvnummer;
      }
  
  
      public Integer getSystemTypId() {
          return systemTypId;
      }
  
  
      public void setSystemTypId(Integer systemTypId) {
          this.systemTypId = systemTypId;
      }
  
  
      public Integer getSystemTypDelId() {
          return systemTypDelId;
      }
  
  
      public void setSystemTypDelId(Integer systemTypDelId) {
          this.systemTypDelId = systemTypDelId;
      }
  
  
      public Timestamp getLoggTid() {
          return loggTid;
      }
  
  
      public void setLoggTid(Timestamp loggTid) {
          this.loggTid = loggTid;
      }
  
  
      public Integer getStatusId() {
          return statusId;
      }
  
  
      public void setStatusId(Integer statusId) {
          this.statusId = statusId;
      }
  
  
      public String getBenamning() {
          return benamning;
      }
  
  
      public void setBenamning(String benamning) {
          this.benamning = benamning;
      }
  
  
      public Date getIngivningsDatum() {
          return ingivningsDatum;
      }
  
  
      public void setIngivningsDatum(Date ingivningsDatum) {
          this.ingivningsDatum = ingivningsDatum;
      }
  
  
      public Date getAnkomstDatum() {
          return ankomstDatum;
      }
  
  
      public void setAnkomstDatum(Date ankomstDatum) {
          this.ankomstDatum = ankomstDatum;
      }
  
  
      public Date getInkomDatum() {
          return inkomDatum;
      }
  
  
      public void setInkomDatum(Date inkomDatum) {
          this.inkomDatum = inkomDatum;
      }
  
  
      public Date getBeslutsDatum() {
          return beslutsDatum;
      }
  
  
      public void setBeslutsDatum(Date beslutsDatum) {
          this.beslutsDatum = beslutsDatum;
      }
  
  
      public Integer getAnsvarigHandlaggareId() {
          return ansvarigHandlaggareId;
      }
  
  
      public void setAnsvarigHandlaggareId(Integer ansvarigHandlaggareId) {
          this.ansvarigHandlaggareId = ansvarigHandlaggareId;
      }
  
  
      public Integer getSkapadHandlaggareId() {
          return skapadHandlaggareId;
      }
  
  
      public void setSkapadHandlaggareId(Integer skapadHandlaggareId) {
          this.skapadHandlaggareId = skapadHandlaggareId;
      }
  
  
      public Integer getEgenskapId() {
          return egenskapId;
      }
  
  
      public void setEgenskapId(Integer egenskapId) {
          this.egenskapId = egenskapId;
      }
  
  
      public String getPrioritet() {
          return prioritet;
      }
  
  
      public void setPrioritet(String prioritet) {
          this.prioritet = prioritet;
      }
  
  
      public List&lt;ArbetsMomentLog&gt; getArbetsuppgifter() {
          return arbetsuppgifter;
      }
  
  
      public void setArbetsuppgifter(List&lt;ArbetsMomentLog&gt; arbetsuppgifter) {
          this.arbetsuppgifter = arbetsuppgifter;
      }
  
      public void addArbetsuppgifter(List&lt;ArbetsMomentLog&gt; arbetsuppgifter) {
          if(this.arbetsuppgifter!=null)
              this.arbetsuppgifter.addAll(arbetsuppgifter);
          else {
              this.arbetsuppgifter = arbetsuppgifter;
          }
      }
  
      public ArbetsMomentLog getArbetsuppgiftByTyp(int arbMomTyp) {
          ArbetsMomentLog amlog = null;
          for(ArbetsMomentLog aml: this.arbetsuppgifter) {
              if(aml.getArbetsMomentId()==arbMomTyp) {
                  amlog = aml;
                  break;
              }
  
          }
          return amlog;
      }
  
  }
  </code></pre>