使用Hibernate投影查找两列之间的差异
我有以下疑问:使用Hibernate投影查找两列之间的差异,hibernate,Hibernate,我有以下疑问: List results = getSession() .createCriteria(AppointmentSlot.class) .setProjection( Projections.projectionList() .add(Projections.min("startTime"))
List results = getSession()
.createCriteria(AppointmentSlot.class)
.setProjection(
Projections.projectionList()
.add(Projections.min("startTime"))
.add(Projections.max("endTime"))
.add(Projections.groupProperty("clinicInfo"))
.add(Projections.groupProperty("staffInfo"))
.add(Projections.groupProperty("status"))
.add(Projections.groupProperty("dayId")))
.list();
我想选择计算min(“开始时间”)
和max(“结束时间”)
差异的附加属性
更新
数据库中两列的样本值startTime
和endTime
使用Hibernate如何做到这一点?试试sql投影。差不多
List results = getSession()
.createCriteria(AppointmentSlot.class, "apps")
.setProjection(
Projections.projectionList()
.add(Projections.min("startTime").as("minStart"))
.add(Projections.max("endTime").as("maxTime"))
.add(Projections.groupProperty("clinicInfo"))
.add(Projections.groupProperty("staffInfo"))
.add(Projections.groupProperty("status"))
.add(Projections.groupProperty("dayId")))
.add(Projections.sqlProjection("(apps.minStart- apps.maxTime) as duration", new String[]{"duration"}, new org.hibernate.type.DateType[]{new org.hibernate.type.DateType()}),"duration")
.list();
我可以在同一个查询中使用它吗?因为我尝试了它,它给了我
值“0”不能表示为java.sql.Date
startTime和endTime
的类型是什么?它是org.joda.time.LocalTime
尝试TimestampType
我仍然得到类似的错误,无法将值“0”从第3列转换为TIMESTAMP
。这是否意味着持续时间为0?