2017-01-17 16 views
0

Мне нужно получить все строки, в которых текущая дата содержит beetwen dateStart и dateAnd.Критерий спящего режима получает все строки, где currentDate> startDate и <endDate

если текущая дата - 17 января 2017 и

id dateStart  dateEnd 
0 01 JAN 2017 18 JAN 2017 
1 01 JAN 2017 16 JAN 2017 
2 18 JAN 2017 03 FEB 2017 
4 17 JAN 2017 16 JAN 2017 

мне нужно получить 2 строки с 0 и 4 ID в таблице

@Override 
    public List<Raffle> findCurrentRaffle() { 
     Criteria criteria = getSession().createCriteria(Raffle.class); 
     criteria.add(Restrictions.ge("dateStart", new Date())); 
     criteria.add(Restrictions.le("dateEnd", new Date())); 
     return criteria.list(); 
    } 

возврата 0 строк

private Long id; 
    @Column(name = "dateStart") 
    @Temporal(TemporalType.TIMESTAMP) 
    private Date dateStart; 
    @Column(name = "dateEnd") 
    @Temporal(TemporalType.TIMESTAMP) 
    private Date dateEnd; 
+0

новой Дату() не должен вызываться дважды, они будут иметь разные значения. Просто общее замечание, оно не ответит на вопрос. – hakamairi

+0

Можете ли вы показать класс Raffle и рассказать, какие типы столбцов dateStart и dateEnd? – hakamairi

+0

Что именно вы ищете? –

ответ

2

В вас условия у вас есть dateStart >= currentDate and dateEnd <= currentDate

Чтобы решить проблему, просто изменить условие dateStart <= currentDate and dateEnd >= currentDate

criteria.add(Restrictions.le("dateStart", new Date())); 
criteria.add(Restrictions.ge("dateEnd", new Date())); 

 Смежные вопросы

  • Нет связанных вопросов^_^