[英]Dynamic Query in Java date interval
我使用Liferay 6.2,嘗試使用DynamicQuery
選擇元素。
我有一個包含startDate
和endDate
列的模型Event
。
ClassLoader cl = Event.class.getClassLoader();
DynamicQuery dynamicQuery = DynamicQueryFactoryUtil.forClass(Event.class, cl);
我想查詢選擇startDate
和endDate
之間的表的行。
我該怎么做?
你知道那個功能
Property.lt(Object)
表示低於 , Property.le(Object)
表示更低或等於的值 , Property.gt(Object)
表示大於和, Property.ge(Object)
表示等於或大於 ? 您可以按以下方式使用此知識:
Date startDate = ...;
Date endDate = ...;
DynamicQuery dynamicQuery = DynamicQueryFactoryUtil.forClass(Event.class, Event.class.getClassLoader());
Property startDateProperty = PropertyFactoryUtil.forName("startDate");
Property endDateProperty = PropertyFactoryUtil.forName("endDate");
dynamicQuery.add(startDateProperty.ge(startDate));
dynamicQuery.add(endDateProperty.le(endDate));
這將查找所有事件,這些事件完全在給定的startDate
和endDate
。 如果要查找以某種方式與給定日期范圍重疊的所有事件,則需要這樣做:
dynamicQuery.add(startDateProperty.lt(endDate));
dynamicQuery.add(endDateProperty.gt(startDate));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.