title: org.hibernate.QueryException: could not resolve property: filename
body: <p>I am using Hibernate <code>Criteria</code> to get values from column <code>filename</code> in my table <code>contaque_recording_log</code>.</p>
  
  <p>But when I'm getting the result, it throws an exception</p>
  
  <blockquote>
    <p>org.hibernate.QueryException: could not resolve property: filename of: com.contaque.hibernateTableMappings.contaque_recording_log</p>
  </blockquote>
  
  <p>My table bean is:</p>
  
  <pre><code>import java.util.Date;
  import javax.persistence.*;
  
  
  @Entity
  @Table(name="contaque_recording_log")
  public class contaque_recording_log implements java.io.Serializable{
      private static final long serialVersionUID = 1111222233334404L;
      @Id
      @Column(name="logId", insertable=true, updatable=true, unique=false)
      private Integer logId;
  
      @Column(name="userName", insertable=true, updatable=true, unique=false)
      private String userName;
  
      @Column(name="ext", insertable=true, updatable=true, unique=false)
      private String ext;
  
      @Column(name="phoneNumber", insertable=true, updatable=true, unique=false)
      private String phoneNumber;
  
      @Column(name="callerId", insertable=true, updatable=true, unique=false)
      private String callerId;
  
      @Column(name="fileName", insertable=true, updatable=true, unique=false)
      private String fileName;
  
  
      @Column(name="campName", insertable=true, updatable=true, unique=false)
      private String campName;
  
      @Temporal(javax.persistence.TemporalType.TIMESTAMP)
      @Column(name="eventDate", insertable=true, updatable=true, unique=false)
      private Date eventDate;
  
      @Column(name="disposition", insertable=true, updatable=true, unique=false)
      private String disposition;
  
      @Column(name="duration", insertable=true, updatable=true, unique=false)
      private String duration;
  
      @Column(name="calltype", insertable=true, updatable=true, unique=false)
      private String calltype;
  
      public Date getEventDate() {
          return eventDate;
      }
  
      public void setEventDate(Date eventDate) {
          this.eventDate = eventDate;
      }
  
      public String getCallerId() {
          return callerId;
      }
  
      public void setCallerId(String callerId) {
          this.callerId = callerId;
      }
  
      public String getExt() {
          return ext;
      }
  
      public void setExt(String ext) {
          this.ext = ext;
      }
  
      public String getFileName() {
          return fileName;
      }
  
      public void setFileName(String fileName) {
          this.fileName = fileName;
      }
  
      public String getPhoneNumber() {
          return phoneNumber;
      }
  
      public void setPhoneNumber(String phoneNumber) {
          this.phoneNumber = phoneNumber;
      }
  
      public String getUserName() {
          return userName;
      }
  
      public void setUserName(String userName) {
          this.userName = userName;
      }
  
      public Integer getLogId() {
          return logId;
      }
  
      public void setLogId(Integer logId) {
          this.logId = logId;
      }
  
      public String getCampName() {
          return campName;
      }
  
      public void setCampName(String campName) {
          this.campName = campName;
      }
  
      public String getDisposition() {
          return disposition;
      }
  
      public void setDisposition(String disposition) {
          this.disposition = disposition;
      }
  
      public String getDuration() {
          return duration;
      }
  
      public void setDuration(String duration) {
          this.duration = duration;
      }
  
      public String getCalltype() {
          return calltype;
      }
  
      public void setCalltype(String calltype) {
          this.calltype = calltype;
      }
  }
  </code></pre>
  
  <p>MY hibernateUtil class from where I'm getting hibernate-session:</p>
  
  <pre><code>public enum HibernateUtilSpice {
      INSTANCE;
      public static SessionFactory sessionFactory = null;
  
      private synchronized SessionFactory getSessionFactory(){
  
          if(sessionFactory == null){
              Configuration config = new Configuration();
              config.addAnnotatedClass(contaque_recording_log.class);
              config.addAnnotatedClass(contaque_servers.class);
              config.configure();
  
              //get the properties from Hibernate configuration file
              Properties configProperties = config.getProperties();
              ServiceRegistryBuilder serviceRegisteryBuilder = new ServiceRegistryBuilder();
              ServiceRegistry serviceRegistry = serviceRegisteryBuilder.applySettings(configProperties).buildServiceRegistry();
              sessionFactory = config.buildSessionFactory(serviceRegistry);
          }
          return sessionFactory;
      }
  
      public Session getSession(){
          return getSessionFactory().openSession();
      }
  }
  </code></pre>
  
  <p>My method where I'm getting the data from table:</p>
  
  <pre><code>public String getFileName() {
  
      try{
          hibernateSession = HibernateUtilSpice.INSTANCE.getSession();
          Criteria criteria = hibernateSession.createCriteria(contaque_recording_log.class);
          criteria.add(Restrictions.eq("campname", "spice"));
          criteria.add(Restrictions.eq("disposition", "WN"));
          criteria.setProjection(Projections.property("filename"));
          List list = criteria.list();
          for (Object object : list) {
              System.out.println("List obj: " + object);
          }
      } catch (Exception e){
          e.printStackTrace();
      } finally {
          hibernateSession.flush();
          hibernateSession.close();
      }
      return filename;
  }
  </code></pre>
  
  <p>If I print the <code>criteria.toString()</code>, the O/P is:</p>
  
  <pre><code>CriteriaImpl(com.contaque.hibernateTableMappings.contaque_recording_log:this[][campname=spice, disposition=WN]filename)
  </code></pre>
  
  <p>where am I going wrong, how do I get the data from my Table?</p>