queryexception property org not example ejemplo could java hibernate oracle-sqldeveloper hibernate-criteria hibernateexception

java - property - hibernate criteria join



org.hibernate.QueryException: could not resolve property: nombre de archivo (1)

Las consultas de Hibernate distinguen entre mayúsculas y minúsculas con los nombres de las propiedades (porque terminan confiando en los métodos getter / setter en @Entity ).

Asegúrese de referirse a la propiedad como fileName en la consulta Criteria, no en el filename .

Específicamente, Hibernate llamará al método getter de la propiedad de filename de filename al ejecutar esa consulta Criteria, por lo que buscará un método llamado getFilename() . Pero la propiedad se llama FileName y getter getFileName() .

Por lo tanto, cambie la proyección de esta manera:

criteria.setProjection(Projections.property("fileName"));

Estoy usando Hibernate Criteria para obtener los valores del filename de filename columna en mi tabla contaque_recording_log .

Pero cuando obtengo el resultado arroja una excepción

org.hibernate.QueryException: could not resolve property: nombre de archivo de: com.contaque.hibernateTableMappings.contaque_recording_log

My table bean es:

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; }

}

MI clase hibernateUtil desde donde obtengo la sesión de hibernación:

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(); } }

Mi método donde obtengo los datos de la tabla:

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; }

Si imprimo el criteria.toString() , el O / P es:

CriteriaImpl(com.contaque.hibernateTableMappings.contaque_recording_log:this[][campname=spice, disposition=WN]filename)

¿Dónde me estoy equivocando? ¿Cómo obtengo los datos de mi Table?