2017-01-17 4 views
0

Ich brauche alle Zeilen, wo das aktuelle Datum beetwen dateStart und dateAnd enthält.Hibernate-Kriterien erhalten alle Zeilen, in denen currentDate> startDate und <endDate

wenn das aktuelle Datum - 17. Januar 2017 und

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 

ich brauche 2 Reihen mit 0 und 4-ID in Tabelle

@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(); 
    } 

return 0 Reihen

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

new Date() sollte nicht zweimal aufgerufen werden, werden sie unterschiedliche Werte haben. Nur eine allgemeine Bemerkung, es wird die Frage nicht beantworten. – hakamairi

+0

Können Sie bitte die Raffle-Klasse anzeigen und angeben, was die Spaltentypen dateStart und dateEnd sind? – hakamairi

+0

Was genau suchen Sie? –

Antwort

2

In Sie Bedingungen, die Sie haben dateStart >= currentDate and dateEnd <= currentDate

Um ein Problem zu lösen, nur Bedingung dateStart <= currentDate and dateEnd >= currentDate

ändern
criteria.add(Restrictions.le("dateStart", new Date())); 
criteria.add(Restrictions.ge("dateEnd", new Date())); 
Verwandte Themen