找茬

2013-10-10 28 views
1

我有以下查詢:找茬

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("startTime")max("endTime")的區別附加屬性。對於兩列startTime

UPDATE

採樣值的數據庫和endTime

  1. 08:00:00,8點15分00秒
  2. 8點15分00秒,09:00 :00
  3. 09:00:00,09:15:00 ...

這怎麼可能使用Hibernate?

回答

1

嘗試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

我可以在相同的查詢中使用它嗎?因爲我試過了,它給了我'值'0'不能表示爲java.sql.Date' – abiieez

+0

'startTime'和'endTime'的類型是什麼? –

+0

它''org.joda.time.LocalTime' – abiieez