Java org.hibernate.hql.ast.QuerySyntaxException:无法在类上找到适当的构造函数

Java org.hibernate.hql.ast.QuerySyntaxException:无法在类上找到适当的构造函数,java,hibernate,Java,Hibernate,下面的hql查询似乎找不到指定的构造函数。变量匹配的路径和编号 List<ServiceRuleVO> serviceRules = session.createQuery("select new com.xxx.modules.service.valueobject.ServiceRuleVO(id, serviceTypeId, " + "petLocationId, startDate, startTime, endDate, endTime, status, re

下面的hql查询似乎找不到指定的构造函数。变量匹配的路径和编号

List<ServiceRuleVO> serviceRules = session.createQuery("select new com.xxx.modules.service.valueobject.ServiceRuleVO(id, serviceTypeId,  "
    + "petLocationId,  startDate, startTime, endDate, endTime, status, recurFrequency, recurCount,  recurInterval, "
    + " recurByDays, recurByMonths,  recurByMonthDay,  billable, payable, modifiedBy,  modifiedTime) from ServiceRule where   "
    + "(startDate<=:toDate and (endDate>=:fromDate or endDate=:neverEndDate)) "
    + "or (id in (select distinct serviceRuleId from ServiceException where "
    + "(startDate>=:fromDateIntSE and startDate<=:toDateIntSE) or "
    + "(startDate<:fromDateIntSE1 and endDate between :fromDateIntSE2 and :toDateIntSE2)))")
.setParameter("toDate", toDate)
.setParameter("fromDate", fromDate)
.setParameter("neverEndDate", neverEndDate)
.setParameter("fromDateIntSE", fromDateInt)
.setParameter("toDateIntSE", toDateInt)
.setParameter("fromDateIntSE1", fromDateInt)
.setParameter("fromDateIntSE2", fromDateInt)
.setParameter("toDateIntSE2", toDateInt)
.list();
如果从sql和构造函数中删除了时间变量starttime和end time,那么它就可以工作


任何帮助..请..

如果您只需要时间,例如09:56:20

您可以使用java.util.Date,并使用TemporalType.TIME,如下所示

@Temporal(value = TemporalType.TIME)
@Column(name = "START_TIME")
public Date getStartTime () {
    return startTime;
}



@Temporal(value = TemporalType.TIME)
@Column(name = "END_TIME")
public Date getEndTime () {
    return endTime;
}

DB数据类型和实体数据类型之间似乎不匹配。你可以再检查一下。如果您想在数据中使用时间戳,可以在实体中使用java.util.Date和@Temporal(TemporalType.timestamp)。您使用java.sql.Time有什么特别的原因吗?在我的数据库中,ServiceRule表有startTime和endTime(数据类型Time)以及数据类型Date的startDate和endDate。。我正在使用java.sql.TIme,因为我想在startTime和endTime中只保存时间参数,在startDate和endDate中只保存日期参数。
@Temporal(value = TemporalType.TIME)
@Column(name = "START_TIME")
public Date getStartTime () {
    return startTime;
}



@Temporal(value = TemporalType.TIME)
@Column(name = "END_TIME")
public Date getEndTime () {
    return endTime;
}