Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Hibernate投影查找两列之间的差异_Hibernate - Fatal编程技术网

使用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

  • 08:00:00,08:15:00
  • 08:15:00,09:00:00
  • 09:00:00,09:15:00

  • 使用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?