我正在使用Hibernate Criteria
从filename
表的列中获取值contaque_recording_log
。
但是当我得到结果时,它会引发异常
org.hibernate.QueryException:无法解析属性:com.contaque.hibernateTableMappings.contaque_recording_log的文件名
我的食用豆是:
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;
}
}
我从那里获取hibernate-session的hibernateUtil类:
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();
}
}
我从表中获取数据的方法:
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;
}
如果我打印criteria.toString()
,则O / P为:
CriteriaImpl(com.contaque.hibernateTableMappings.contaque_recording_log:this[][campname=spice, disposition=WN]filename)
我在哪里出错,如何从表格中获取数据?
hibernate查询的属性名称区分大小写(因为它们最终依赖于上的getter / setter方法@Entity
)。
确保参考fileName
Criteria查询中的属性,而不是filename
。
具体来说,Hibernate
filename
在执行该Criteria查询时将调用该属性的getter方法,因此它将查找名为的方法getFilename()
。但是该属性被称为FileName
getter
getFileName()
。
因此,如下更改投影:
criteria.setProjection(Projections.property("fileName"));
原因:组织。冬眠QueryException:无法从com.dso.model.comptabilite.cegid.etapejudiciairnkfactureacteshonoraires将请求的类型转换为:INT[选择子字符串(referenceComptable,8,14)作为seqNum,子字符串(referenceComptable,4,7)作为yearCegid,子字符串(refe
问题内容: 因此,我有一个表,已将其定义为hibernate状态,如下所示: 当我尝试针对此表编写一个简单查询时: 我收到以下错误: 为什么不能hibernate找出类上的dbgroupid? 问题答案: 可能是因为您的getter(和setter)没有遵循javabeans约定。它应该是: 我的建议是-命名字段,然后使用IDE生成设置器和获取器。它将遵循惯例。(另一件事,这是一个偏好问题,但我认
问题内容: 我有我的配置: 我得到错误 我知道这可能缺少属性文件,但是我在类路径中恰好有它。有什么不见了? 我的web.xml: 问题答案: 你的应用程序中可能有多个。尝试在超类的方法上设置一个断点,看看在应用程序启动时是否多次调用了该断点。如果不止一个,则可能需要查看配置属性,以便你的应用程序可以正常启动。
有人知道为什么我会得到这个错误吗: @entity@table(name=“salidas_procesionales”,catalog=“sahe”)公共类SalidasProcesionales实现java.io.serializable{ 我已经删除了长度的构造函数。
我正在尝试执行一个非常基本的查询,并收到org.hibernate.QueryException:无法解析属性。这是我的实体: @table(name="pm_screenconfiguration")公共类ScreenConfiguration扩展了PubleMovilEntity{ } 这是我的问题: 我真的搞不懂。Im使用MySql,所有列都具有相同的实体名称。 谢谢
太长别读:GCP秘密没有在bootstrap文件中解析,但是sql starter需要一个实例连接名和bootstrap上的库名 我正在尝试将GCP Secretmanager合并到一个Spring Boot应用程序中,该应用程序运行在Google App Engine上,并使用GCP SQL。 但是,在引导时似乎没有解析前缀。 作为参考,这是我pom的一部分。(我正在使用com.google.c