可以生成sql 语句,在数据库中查询也没问题,但是会报错,不知道是不是类型转换错误,我是新手,希望大佬们帮我看下。private String createQueryString(boolean useCount,
Map<StationMonitorVolFieldsDB, String> criterias) {
// TODO Auto-generated method stub
StringBuilder sb = new StringBuilder();
int termCount = 0;
sb.append("select").append(useCount ? " count(t.id)" : " t ,case Data_Valid when '1' then '有效' when '2' then '无效' else '' end ")
.append(" from StationMonitorVolInfo as t");
return sb.toString();
下面报错信息,Hibernate: select top 20 stationmon0_.ID as col_0_0_, case Data_Valid when '1' then '有效' when '2' then '无效' else '' end as col_1_0_, stationmon0_.ID as ID21_, stationmon0_.SERIALPORTEQUIID as SERIALPO2_21_, stationmon0_.dataType as dataType21_, stationmon0_.vol_data as vol4_21_, stationmon0_.data_valid as data5_21_, stationmon0_.updatetime as updatetime21_ from TSTATIONMONITORCIRCLE_VOL stationmon0_ where stationmon0_.SERIALPORTEQUIID='959' and (stationmon0_.dataType like '%V%')
ParamExceptionMappingInterceptor: java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to dwz.persistence.beans.StationMonitorVolInfo:[Ljava.lang.Object; cannot be cast to dwz.persistence.beans.StationMonitorVolInfo
java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to dwz.persistence.beans.StationMonitorVolInfo
Map<StationMonitorVolFieldsDB, String> criterias) {
// TODO Auto-generated method stub
StringBuilder sb = new StringBuilder();
int termCount = 0;
sb.append("select").append(useCount ? " count(t.id)" : " t ,case Data_Valid when '1' then '有效' when '2' then '无效' else '' end ")
.append(" from StationMonitorVolInfo as t");
return sb.toString();
下面报错信息,Hibernate: select top 20 stationmon0_.ID as col_0_0_, case Data_Valid when '1' then '有效' when '2' then '无效' else '' end as col_1_0_, stationmon0_.ID as ID21_, stationmon0_.SERIALPORTEQUIID as SERIALPO2_21_, stationmon0_.dataType as dataType21_, stationmon0_.vol_data as vol4_21_, stationmon0_.data_valid as data5_21_, stationmon0_.updatetime as updatetime21_ from TSTATIONMONITORCIRCLE_VOL stationmon0_ where stationmon0_.SERIALPORTEQUIID='959' and (stationmon0_.dataType like '%V%')
ParamExceptionMappingInterceptor: java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to dwz.persistence.beans.StationMonitorVolInfo:[Ljava.lang.Object; cannot be cast to dwz.persistence.beans.StationMonitorVolInfo
java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to dwz.persistence.beans.StationMonitorVolInfo
解决方案 »
- java调用dll问题求解
- java ServerSocket的问题
- 开源消息平台?(500分)
- java线程终止问题
- 本人建一个初级群(struts+hibernate)
- 现在SPRING + HIBERNET 未来JSF + EJB3.0?
- spring中HibernateTemplate的使用
- 如何设置"打开文件对话框"的字体?
- 求个类似于QQ号码生成的方法,不重复。(时间获取的勿发)
- 为什么系统变量不能操作
- 使用ssm框架实现一个表单同时将数据存入两张表(存一个问题,多个答案)
- 这错,求大神解决java.lang.ClassFormatError: Invalid pc in LineNumberTable in class file
类转换错误。报错是在哪一行???
@Override
public Collection<StationMonitorVol> searchStationMonitorVolFromDB(
Map<StationMonitorVolFieldsDB, String> criterias,
String orderField, int startIndex, int count) {
// TODO Auto-generated method stub
ArrayList<StationMonitorVol> stationmonitorvolList = new ArrayList<StationMonitorVol>();
if (criterias == null)
return stationmonitorvolList; Collection<StationMonitorVolInfo> InstationmonitorvolList = this.stationmonitorvoldao.findByQuery(this
.createQueryString(false, criterias), startIndex, count); if (InstationmonitorvolList == null || InstationmonitorvolList.size() == 0)
return stationmonitorvolList; for (StationMonitorVolInfo Ins: InstationmonitorvolList) {
stationmonitorvolList.add(new StationMonitorVolImpl(Ins));
}
//System.out.println(stationBaseList);
return stationmonitorvolList;
}下面是
package dwz.persistence.beans;import java.math.BigDecimal;
import java.sql.Date;public class StationMonitorVolInfo { private Integer ID;
private Integer SERIALPORTEQUIID;
private String dataType;
private BigDecimal vol_data;
private Integer data_valid;
private Date updatetime;
public Integer getID() {
return ID;
} public void setID(Integer ID) {
this.ID = ID;
} public Integer getSERIALPORTEQUIID() {
return SERIALPORTEQUIID;
} public void setSERIALPORTEQUIID(Integer SERIALPORTEQUIID) {
this.SERIALPORTEQUIID = SERIALPORTEQUIID;
} public String getDataType() {
return dataType;
} public void setDataType(String dataType) {
this.dataType = dataType;
} public BigDecimal getVol_data() {
return vol_data;
} public void setVol_data(BigDecimal vol_data) {
this.vol_data = vol_data;
} public Integer getData_valid() {
return data_valid;
} public void setData_valid(Integer data_valid) {
this.data_valid = data_valid;
} public Date getUpdatetime() {
return updatetime;
} public void setUpdatetime(Date updatetime) {
this.updatetime = updatetime;
}
}
@Override
public Collection<StationMonitorVol> searchStationMonitorVolFromDB(
Map<StationMonitorVolFieldsDB, String> criterias,
String orderField, int startIndex, int count) {
// TODO Auto-generated method stub
ArrayList<StationMonitorVol> stationmonitorvolList = new ArrayList<StationMonitorVol>();
if (criterias == null)
return stationmonitorvolList; Collection<StationMonitorVolInfo> InstationmonitorvolList = this.stationmonitorvoldao.findByQuery(this
.createQueryString(false, criterias), startIndex, count); if (InstationmonitorvolList == null || InstationmonitorvolList.size() == 0)
return stationmonitorvolList; for (StationMonitorVolInfo Ins: InstationmonitorvolList) {
stationmonitorvolList.add(new StationMonitorVolImpl(Ins));
}
//System.out.println(stationBaseList);
return stationmonitorvolList;
}下面是
package dwz.persistence.beans;import java.math.BigDecimal;
import java.sql.Date;public class StationMonitorVolInfo { private Integer ID;
private Integer SERIALPORTEQUIID;
private String dataType;
private BigDecimal vol_data;
private Integer data_valid;
private Date updatetime;
public Integer getID() {
return ID;
} public void setID(Integer ID) {
this.ID = ID;
} public Integer getSERIALPORTEQUIID() {
return SERIALPORTEQUIID;
} public void setSERIALPORTEQUIID(Integer SERIALPORTEQUIID) {
this.SERIALPORTEQUIID = SERIALPORTEQUIID;
} public String getDataType() {
return dataType;
} public void setDataType(String dataType) {
this.dataType = dataType;
} public BigDecimal getVol_data() {
return vol_data;
} public void setVol_data(BigDecimal vol_data) {
this.vol_data = vol_data;
} public Integer getData_valid() {
return data_valid;
} public void setData_valid(Integer data_valid) {
this.data_valid = data_valid;
} public Date getUpdatetime() {
return updatetime;
} public void setUpdatetime(Date updatetime) {
this.updatetime = updatetime;
}
}
this.stationmonitorvoldao.findByQuery(this.createQueryString(false, criterias), startIndex, count);
.findByQuery方法怎么写的???
@Override
public Collection<StationMonitorVol> searchStationMonitorVolFromDB(
Map<StationMonitorVolFieldsDB, String> criterias,
String orderField, int startIndex, int count) {
// TODO Auto-generated method stub
ArrayList<StationMonitorVol> stationmonitorvolList = new ArrayList<StationMonitorVol>();
if (criterias == null)
return stationmonitorvolList; Collection<StationMonitorVolInfo> InstationmonitorvolList = this.stationmonitorvoldao.findByQuery(this
.createQueryString(false, criterias), startIndex, count); if (InstationmonitorvolList == null || InstationmonitorvolList.size() == 0)
return stationmonitorvolList; for (StationMonitorVolInfo Ins: InstationmonitorvolList) {
stationmonitorvolList.add(new StationMonitorVolImpl(Ins));
}
//System.out.println(stationBaseList);
return stationmonitorvolList;
}下面是
package dwz.persistence.beans;import java.math.BigDecimal;
import java.sql.Date;public class StationMonitorVolInfo { private Integer ID;
private Integer SERIALPORTEQUIID;
private String dataType;
private BigDecimal vol_data;
private Integer data_valid;
private Date updatetime;
public Integer getID() {
return ID;
} public void setID(Integer ID) {
this.ID = ID;
} public Integer getSERIALPORTEQUIID() {
return SERIALPORTEQUIID;
} public void setSERIALPORTEQUIID(Integer SERIALPORTEQUIID) {
this.SERIALPORTEQUIID = SERIALPORTEQUIID;
} public String getDataType() {
return dataType;
} public void setDataType(String dataType) {
this.dataType = dataType;
} public BigDecimal getVol_data() {
return vol_data;
} public void setVol_data(BigDecimal vol_data) {
this.vol_data = vol_data;
} public Integer getData_valid() {
return data_valid;
} public void setData_valid(Integer data_valid) {
this.data_valid = data_valid;
} public Date getUpdatetime() {
return updatetime;
} public void setUpdatetime(Date updatetime) {
this.updatetime = updatetime;
}
}
this.stationmonitorvoldao.findByQuery(this.createQueryString(false, criterias), startIndex, count);
.findByQuery方法怎么写的???package dwz.dal;import java.util.Collection;
import java.util.List;import dwz.persistence.beans.StationBaseInfo;public interface BaseDao<T, PK extends java.io.Serializable> { public void insert(T model);
public void insertBatch(List<T> modelList); public void update(T model); public void delete(T model); public T findByPrimaryKey(PK modelPK) throws LookupException; public java.util.Collection<T> findAll();
@SuppressWarnings("unchecked")
public java.util.Collection findByAdvancedQuery(final String queryStr,
final int startIndex, final int count);
public java.util.Collection<T> findByQuery(final String queryStr,
final int startIndex, final int count); public int countAll();
public int countByQuery(final String queryStr);
public int countByQuery(final String queryStr, final Object[] params);
public void callProcedure(String procedure);
public java.util.Collection findBySQLQuery(final String queryStr,
final Object[] params, final int startIndex, final int count); public int countBySQLQuery(final String queryStr, final Object[] params);
}