}进行更改查询的HQLpublic List dateStatistics(String date){ // TODO Auto-generated method stub StringBuffer hql = new StringBuffer(); hql.append("select new WorkStatistics(trucks.tkNo,trucks.tkName,trucks.tkMark,sum(tkWkamount),sum(tkWkjourney))"); hql.append(" from TruckWorkTimes"); hql.append(" where to_char(tkWkstarttime,'yyyy-mm-dd')='"+date+"'"); hql.append(" group by trucks.tkNo,trucks.tkMark,trucks.tkName"); return this.getHibernateTemplate().find(hql.toString()); }结果还报错(本人很生气,后果很严重) org.springframework.orm.hibernate3.HibernateQueryException: Unable to locate class [WorkStatistics] [select new WorkStatistics(trucks.tkNo,trucks.tkName,trucks.tkMark,sum(tkWkamount),sum(tkWkjourney)) from com.dayuan.model.trucks.TruckWorkTimes where to_char(tkWkstarttime,'yyyy-mm-dd')='2011-01-14' group by trucks.tkNo,trucks.tkMark,trucks.tkName]; nested exception is org.hibernate.hql.ast.QuerySyntaxException: Unable to locate class [WorkStatistics] [select new WorkStatistics(trucks.tkNo,trucks.tkName,trucks.tkMark,sum(tkWkamount),sum(tkWkjourney)) from com.dayuan.model.trucks.TruckWorkTimes where to_char(tkWkstarttime,'yyyy-mm-dd')='2011-01-14' group by trucks.tkNo,trucks.tkMark,trucks.tkName] org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:660) org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412) org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:411) org.springframework.orm.hibernate3.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:374) org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:912) org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:904) com.dayuan.dao.project.YidldDAO.dateStatistics(YidldDAO.java:45) com.dayuan.service.project.YidldServiceImp.dateStatistics(YidldServiceImp.java:46) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
javaBean需要写个无参数构造函数..
应该一样的吧。package com.dayuan.model.trucks;import java.util.Date;import com.dayuan.model.project.TransportProject;/** * TruckWorkTimes entity. @author MyEclipse Persistence Tools */public class TruckWorkTimes implements java.io.Serializable { // Fields private String tkWkno; private Trucks trucks; private TransportProject transportProject; private Double tkWkamount; private Double tkWkjourney; private Double tkWkmaxspeed; private Date tkWkstarttime; private Date tkWkendtime; private Date tkWktime; // Constructors /** default constructor */ public TruckWorkTimes() { } /** full constructor */ public TruckWorkTimes(Trucks trucks, TransportProject transportProject, Double tkWkamount, Double tkWkjourney, Double tkWkmaxspeed, Date tkWkstarttime, Date tkWkendtime, Date tkWktime) { this.trucks = trucks; this.transportProject = transportProject; this.tkWkamount = tkWkamount; this.tkWkjourney = tkWkjourney; this.tkWkmaxspeed = tkWkmaxspeed; this.tkWkstarttime = tkWkstarttime; this.tkWkendtime = tkWkendtime; this.tkWktime = tkWktime; } public TruckWorkTimes(Trucks trucks, Double tkWkamount, Double tkWkjourney) { this.trucks = trucks; this.tkWkamount = tkWkamount; this.tkWkjourney = tkWkjourney; } // Property accessors public String getTkWkno() { return this.tkWkno; } public void setTkWkno(String tkWkno) { this.tkWkno = tkWkno; } public Trucks getTrucks() { return this.trucks; } public void setTrucks(Trucks trucks) { this.trucks = trucks; } public TransportProject getTransportProject() { return this.transportProject; } public void setTransportProject(TransportProject transportProject) { this.transportProject = transportProject; } public Double getTkWkamount() { return this.tkWkamount; } public void setTkWkamount(Double tkWkamount) { this.tkWkamount = tkWkamount; } public Double getTkWkjourney() { return this.tkWkjourney; } public void setTkWkjourney(Double tkWkjourney) { this.tkWkjourney = tkWkjourney; } public Double getTkWkmaxspeed() { return this.tkWkmaxspeed; } public void setTkWkmaxspeed(Double tkWkmaxspeed) { this.tkWkmaxspeed = tkWkmaxspeed; } public Date getTkWkstarttime() { return this.tkWkstarttime; } public void setTkWkstarttime(Date tkWkstarttime) { this.tkWkstarttime = tkWkstarttime; } public Date getTkWkendtime() { return this.tkWkendtime; } public void setTkWkendtime(Date tkWkendtime) { this.tkWkendtime = tkWkendtime; } public Date getTkWktime() { return this.tkWktime; } public void setTkWktime(Date tkWktime) { this.tkWktime = tkWktime; }} package com.dayuan.model.trucks;import java.util.HashSet; import java.util.Set;/** * Trucks entity. @author MyEclipse Persistence Tools */public class Trucks implements java.io.Serializable { // Fields private Long tkId; private String tkNo; private String tkName; private String tkType; private String tkMark; private Double tkCapacity; private Double tkWeight; private Double tkWeighterror; private String tkBeizhu; private Set truckWorkTimeses = new HashSet(0); private Set truckOils = new HashSet(0); private Set truckTrackers = new HashSet(0); private Set truckRepairs = new HashSet(0); // Constructors /** default constructor */ public Trucks() { } public Trucks(String tkNo, String tkName,String tkMark){ this.tkNo = tkNo; this.tkName = tkName; this.tkMark = tkMark; } /** full constructor */ public Trucks(String tkNo, String tkName, String tkType, String tkMark, Double tkCapacity, Double tkWeight, Double tkWeighterror, String tkBeizhu, Set truckWorkTimeses, Set truckOils, Set truckTrackers, Set truckTrackerRuntimes, Set truckRepairs) { this.tkNo = tkNo; this.tkName = tkName; this.tkType = tkType; this.tkMark = tkMark; this.tkCapacity = tkCapacity; this.tkWeight = tkWeight; this.tkWeighterror = tkWeighterror; this.tkBeizhu = tkBeizhu; this.truckWorkTimeses = truckWorkTimeses; this.truckOils = truckOils; this.truckTrackers = truckTrackers; this.truckRepairs = truckRepairs; } // Property accessors public String getTkNo() { return this.tkNo; } public Long getTkId() { return tkId; } public void setTkId(Long tkId) { this.tkId = tkId; } public void setTkNo(String tkNo) { this.tkNo = tkNo; } public String getTkName() { return this.tkName; } public void setTkName(String tkName) { this.tkName = tkName; } public String getTkType() { return this.tkType; } public void setTkType(String tkType) { this.tkType = tkType; } public String getTkMark() { return this.tkMark; } public void setTkMark(String tkMark) { this.tkMark = tkMark; } public Double getTkCapacity() { return this.tkCapacity; } public void setTkCapacity(Double tkCapacity) { this.tkCapacity = tkCapacity; } public Double getTkWeight() { return this.tkWeight; } public void setTkWeight(Double tkWeight) { this.tkWeight = tkWeight; } public Double getTkWeighterror() { return this.tkWeighterror; } public void setTkWeighterror(Double tkWeighterror) { this.tkWeighterror = tkWeighterror; } public String getTkBeizhu() { return this.tkBeizhu; } public void setTkBeizhu(String tkBeizhu) { this.tkBeizhu = tkBeizhu; } public Set getTruckWorkTimeses() { return this.truckWorkTimeses; } public void setTruckWorkTimeses(Set truckWorkTimeses) { this.truckWorkTimeses = truckWorkTimeses; } public Set getTruckOils() { return this.truckOils; } public void setTruckOils(Set truckOils) { this.truckOils = truckOils; } public Set getTruckTrackers() { return this.truckTrackers; } public void setTruckTrackers(Set truckTrackers) { this.truckTrackers = truckTrackers; } public Set getTruckRepairs() { return this.truckRepairs; } public void setTruckRepairs(Set truckRepairs) { this.truckRepairs = truckRepairs; }}
trucks.TruckWorkTimes where to_char(tkWkstarttime,'yyyy-mm-dd')='2011-01-14' 数据库中日期字段是String 类型?
解决了!public List dateStatistics(String date){ // TODO Auto-generated method stub StringBuffer hql = new StringBuffer(); hql.append("select new com.dayuan.model.project.WorkStatistics(trucks.tkNo,trucks.tkName,trucks.tkMark,sum(tkWkamount),sum(tkWkjourney))"); hql.append(" from TruckWorkTimes"); hql.append(" where to_char(tkWkstarttime,'yyyy-mm-dd')='"+date+"'"); hql.append(" group by trucks.tkNo,trucks.tkMark,trucks.tkName"); return this.getHibernateTemplate().find(hql.toString()); }
private String truckNo;
private String truckName;
private String tkMark;
private Double tkWkamount;
private Double tkWkjourney;
public WorkStatistics(String truckNo,String truckName,String tkMark,Double tkWkamount,
Double tkWkjourney){
this.truckNo = truckNo;
this.truckName = truckName;
this.tkMark = tkMark;
this.tkWkamount = tkWkamount;
this.tkWkjourney = tkWkjourney;
}
public String getTruckNo() {
return truckNo;
}
public void setTruckNo(String truckNo) {
this.truckNo = truckNo;
}
public String getTruckName() {
return truckName;
}
public void setTruckName(String truckName) {
this.truckName = truckName;
}
public String getTkMark() {
return tkMark;
}
public void setTkMark(String tkMark) {
this.tkMark = tkMark;
}
public Double getTkWkamount() {
return tkWkamount;
}
public void setTkWkamount(Double tkWkamount) {
this.tkWkamount = tkWkamount;
}
public Double getTkWkjourney() {
return tkWkjourney;
}
public void setTkWkjourney(Double tkWkjourney) {
this.tkWkjourney = tkWkjourney;
}
}进行更改查询的HQLpublic List dateStatistics(String date){
// TODO Auto-generated method stub
StringBuffer hql = new StringBuffer();
hql.append("select new WorkStatistics(trucks.tkNo,trucks.tkName,trucks.tkMark,sum(tkWkamount),sum(tkWkjourney))");
hql.append(" from TruckWorkTimes");
hql.append(" where to_char(tkWkstarttime,'yyyy-mm-dd')='"+date+"'");
hql.append(" group by trucks.tkNo,trucks.tkMark,trucks.tkName");
return this.getHibernateTemplate().find(hql.toString());
}结果还报错(本人很生气,后果很严重)
org.springframework.orm.hibernate3.HibernateQueryException: Unable to locate class [WorkStatistics] [select new WorkStatistics(trucks.tkNo,trucks.tkName,trucks.tkMark,sum(tkWkamount),sum(tkWkjourney)) from com.dayuan.model.trucks.TruckWorkTimes where to_char(tkWkstarttime,'yyyy-mm-dd')='2011-01-14' group by trucks.tkNo,trucks.tkMark,trucks.tkName]; nested exception is org.hibernate.hql.ast.QuerySyntaxException: Unable to locate class [WorkStatistics] [select new WorkStatistics(trucks.tkNo,trucks.tkName,trucks.tkMark,sum(tkWkamount),sum(tkWkjourney)) from com.dayuan.model.trucks.TruckWorkTimes where to_char(tkWkstarttime,'yyyy-mm-dd')='2011-01-14' group by trucks.tkNo,trucks.tkMark,trucks.tkName]
org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:660)
org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412)
org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:411)
org.springframework.orm.hibernate3.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:374)
org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:912)
org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:904)
com.dayuan.dao.project.YidldDAO.dateStatistics(YidldDAO.java:45)
com.dayuan.service.project.YidldServiceImp.dateStatistics(YidldServiceImp.java:46)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
* TruckWorkTimes entity. @author MyEclipse Persistence Tools
*/public class TruckWorkTimes implements java.io.Serializable { // Fields private String tkWkno;
private Trucks trucks;
private TransportProject transportProject;
private Double tkWkamount;
private Double tkWkjourney;
private Double tkWkmaxspeed;
private Date tkWkstarttime;
private Date tkWkendtime;
private Date tkWktime; // Constructors /** default constructor */
public TruckWorkTimes() {
} /** full constructor */
public TruckWorkTimes(Trucks trucks, TransportProject transportProject,
Double tkWkamount, Double tkWkjourney, Double tkWkmaxspeed,
Date tkWkstarttime, Date tkWkendtime, Date tkWktime) {
this.trucks = trucks;
this.transportProject = transportProject;
this.tkWkamount = tkWkamount;
this.tkWkjourney = tkWkjourney;
this.tkWkmaxspeed = tkWkmaxspeed;
this.tkWkstarttime = tkWkstarttime;
this.tkWkendtime = tkWkendtime;
this.tkWktime = tkWktime;
}
public TruckWorkTimes(Trucks trucks,
Double tkWkamount, Double tkWkjourney) {
this.trucks = trucks;
this.tkWkamount = tkWkamount;
this.tkWkjourney = tkWkjourney;
}
// Property accessors public String getTkWkno() {
return this.tkWkno;
} public void setTkWkno(String tkWkno) {
this.tkWkno = tkWkno;
} public Trucks getTrucks() {
return this.trucks;
} public void setTrucks(Trucks trucks) {
this.trucks = trucks;
} public TransportProject getTransportProject() {
return this.transportProject;
} public void setTransportProject(TransportProject transportProject) {
this.transportProject = transportProject;
} public Double getTkWkamount() {
return this.tkWkamount;
} public void setTkWkamount(Double tkWkamount) {
this.tkWkamount = tkWkamount;
} public Double getTkWkjourney() {
return this.tkWkjourney;
} public void setTkWkjourney(Double tkWkjourney) {
this.tkWkjourney = tkWkjourney;
} public Double getTkWkmaxspeed() {
return this.tkWkmaxspeed;
} public void setTkWkmaxspeed(Double tkWkmaxspeed) {
this.tkWkmaxspeed = tkWkmaxspeed;
} public Date getTkWkstarttime() {
return this.tkWkstarttime;
} public void setTkWkstarttime(Date tkWkstarttime) {
this.tkWkstarttime = tkWkstarttime;
} public Date getTkWkendtime() {
return this.tkWkendtime;
} public void setTkWkendtime(Date tkWkendtime) {
this.tkWkendtime = tkWkendtime;
} public Date getTkWktime() {
return this.tkWktime;
} public void setTkWktime(Date tkWktime) {
this.tkWktime = tkWktime;
}}
package com.dayuan.model.trucks;import java.util.HashSet;
import java.util.Set;/**
* Trucks entity. @author MyEclipse Persistence Tools
*/public class Trucks implements java.io.Serializable { // Fields private Long tkId;
private String tkNo;
private String tkName;
private String tkType;
private String tkMark;
private Double tkCapacity;
private Double tkWeight;
private Double tkWeighterror;
private String tkBeizhu;
private Set truckWorkTimeses = new HashSet(0);
private Set truckOils = new HashSet(0);
private Set truckTrackers = new HashSet(0);
private Set truckRepairs = new HashSet(0); // Constructors /** default constructor */
public Trucks() {
}
public Trucks(String tkNo, String tkName,String tkMark){
this.tkNo = tkNo;
this.tkName = tkName;
this.tkMark = tkMark;
}
/** full constructor */
public Trucks(String tkNo, String tkName, String tkType, String tkMark,
Double tkCapacity, Double tkWeight, Double tkWeighterror,
String tkBeizhu, Set truckWorkTimeses, Set truckOils,
Set truckTrackers, Set truckTrackerRuntimes, Set truckRepairs) {
this.tkNo = tkNo;
this.tkName = tkName;
this.tkType = tkType;
this.tkMark = tkMark;
this.tkCapacity = tkCapacity;
this.tkWeight = tkWeight;
this.tkWeighterror = tkWeighterror;
this.tkBeizhu = tkBeizhu;
this.truckWorkTimeses = truckWorkTimeses;
this.truckOils = truckOils;
this.truckTrackers = truckTrackers;
this.truckRepairs = truckRepairs;
} // Property accessors public String getTkNo() {
return this.tkNo;
} public Long getTkId() {
return tkId;
} public void setTkId(Long tkId) {
this.tkId = tkId;
} public void setTkNo(String tkNo) {
this.tkNo = tkNo;
} public String getTkName() {
return this.tkName;
} public void setTkName(String tkName) {
this.tkName = tkName;
} public String getTkType() {
return this.tkType;
} public void setTkType(String tkType) {
this.tkType = tkType;
} public String getTkMark() {
return this.tkMark;
} public void setTkMark(String tkMark) {
this.tkMark = tkMark;
} public Double getTkCapacity() {
return this.tkCapacity;
} public void setTkCapacity(Double tkCapacity) {
this.tkCapacity = tkCapacity;
} public Double getTkWeight() {
return this.tkWeight;
} public void setTkWeight(Double tkWeight) {
this.tkWeight = tkWeight;
} public Double getTkWeighterror() {
return this.tkWeighterror;
} public void setTkWeighterror(Double tkWeighterror) {
this.tkWeighterror = tkWeighterror;
} public String getTkBeizhu() {
return this.tkBeizhu;
} public void setTkBeizhu(String tkBeizhu) {
this.tkBeizhu = tkBeizhu;
} public Set getTruckWorkTimeses() {
return this.truckWorkTimeses;
} public void setTruckWorkTimeses(Set truckWorkTimeses) {
this.truckWorkTimeses = truckWorkTimeses;
} public Set getTruckOils() {
return this.truckOils;
} public void setTruckOils(Set truckOils) {
this.truckOils = truckOils;
} public Set getTruckTrackers() {
return this.truckTrackers;
} public void setTruckTrackers(Set truckTrackers) {
this.truckTrackers = truckTrackers;
} public Set getTruckRepairs() {
return this.truckRepairs;
} public void setTruckRepairs(Set truckRepairs) {
this.truckRepairs = truckRepairs;
}}
数据库中日期字段是String 类型?
// TODO Auto-generated method stub
StringBuffer hql = new StringBuffer();
hql.append("select new com.dayuan.model.project.WorkStatistics(trucks.tkNo,trucks.tkName,trucks.tkMark,sum(tkWkamount),sum(tkWkjourney))");
hql.append(" from TruckWorkTimes");
hql.append(" where to_char(tkWkstarttime,'yyyy-mm-dd')='"+date+"'");
hql.append(" group by trucks.tkNo,trucks.tkMark,trucks.tkName");
return this.getHibernateTemplate().find(hql.toString());
}