สมมติว่ามีคลาสชื่อ Article ใช้เก็บบทความ ซึ่งมีฟิลด์ชื่อ publishingDate ระบุวันเวลาตีพิมพ์บทความ (อาจเป็นเวลาในอนาคตก็ได้)
public class Article {
...
private OffsetDateTime publishingDate;
...
}
และมีอินเทอร์เฟซ ArticleRepository extends CrudRepository<Article, Long> (สังเกตุว่าใช้ CrudRepository ก็พอ ไม่จำเป็นต้องใช้ JpaRepository)
เราสามารถเขียนเมธอดชื่อ findBy... เช่น findByAuthor(String author) เพื่อให้ได้ implementation ค้นหาด้วยชื่อผู้เขียนโดยอัตโนมัติ
แล้วหากต้องการเขียนชื่อเมธอดเพื่อค้นหา Article ที่มี publishingDate ระหว่างสองเวลาเช่น fromDate กับ toDate จะเขียนอย่างไร
วิธีเขียนที่ดูกระชับที่สุดคือ
List<Article> findByPublishingDateBetween(OffsetDateTime fromDate, OffsetDateTime toDate);
ซึ่งวิธีนี้จะได้ผลลัพธ์แบบ inclusive คือนับรวมไปถึงจุดเวลาของ fromDate และ toDate ด้วย
ฉะนั้นหากต้องการค้น publishingDate ของวันนี้ทั้งหมด ทำได้ดังนี้
OffsetDateTime today = OffsetDateTime.now().with(LocalTime.MIN);
OffsetDateTime todayMaxTime = OffsetDateTime.now().with(LocalTime.MAX);
repository.findByPublishingDateBetween(today, todayMaxTime)
ถ้าคุณมีข้อสงสัยหรืออยากแสดงความคิดเห็น ร่วมพูดคุยในคอมเมนต์ด้านล่างได้เลยครับ
Top comments (0)