Soru Diğer iki tarih arasındaki tarihleri ​​kontrol et


Bu modelim var:

public class Event {
    private String name;
    private Date start;
    private Date end;
}

ve depo olarak

@Repository
public interface EventRepository extends JpaRepository<Event, Long> {
    List<Event> findByEventTypeAccount(Account account);
}

Yapmak istediğim şey, bir tarihini geçeceğim ve bu tarihin aralarında olduğunu kontrol etmem gerekiyor. start ve end mesela (30'un tarihi olarak geçecek ve aralarında 30 tane bulunan tüm girişleri bulmalıyım. start ve end)

Gibi bir şey findDateisBetweenStartAndEnd(Date date)?


17
2017-09-30 05:33


Menşei


Referans belgelerine göz atmalısınız: docs.spring.io/spring-data/jpa/docs/current/reference/html/.... İyi açıklanmış. - Pau


Cevaplar:


Bir göz atmalısın referans dokümantasyonu. İyi açıklanmış.

Sizin durumunuzda, arada kullanamazsınız çünkü iki parametreyi geçmeniz gerekiyor

Arasında - findByStartDateBetween… nerede? 1 ve? 2 arasında x.startDate

Senin durumunda bir arada kullanmak için bir göz atın LessThan veya LessThanEqual ile GreaterThan veya GreaterThanEqual

  • / LessThanEqual Daha Küçük

LessThan - findByEndLessThan… nerede x.start <? 1

LessThanEqual findByEndLessThanEqual… nerede x.start <=? 1

  • GreaterThan / GreaterThanEqual

GreaterThan - findByStartGreaterThan… nerede x.end>? 1

GreaterThanEqual - findByStartGreaterThanEqual… nerede x.end> =? 1

Operatörü kullanabilirsiniz And ve Or her ikisini birleştirmek için.


37
2017-09-30 07:36





Bunu aşağıdaki çözümü kullandım:

findAllByStartDateLessThanEqualAndEndDateGreaterThanEqual(OffsetDateTime endDate, OffsetDateTime startDate);

8
2018-03-08 10:13



Biraz (daha detaylı) açıklama ekler misiniz? - Yannjoel