关于实体过期快捷方式

在java代码中查询实体未过期的快捷方式是
EntityCondition c = EntityUtil.getFilterByDateExpr();
List<GenericValue> vs = delegator.findList("Plant", c, fs, UtilMisc
.toList("-count"), null, true);

调用 EntityUtil.getFilterByDateExpr();快捷方式,能方便的初始化一个过期的查询条件,进入可以看到调用 return EntityCondition.makeConditionDate("fromDate", "thruDate");来初始化,字段名字是fromDate字段和thruDate字段。
最后初始化出来的实例是EntityDateFilterCondition。最后的生成条件实际上是通过
public static EntityExpr makeCondition(Timestamp moment, String fromDateName, String thruDateName) {
        return EntityCondition.makeCondition(
            EntityCondition.makeCondition(
                EntityCondition.makeCondition(thruDateName, EntityOperator.EQUALS, null),
                EntityOperator.OR,
                EntityCondition.makeCondition(thruDateName, EntityOperator.GREATER_THAN, moment)
           ),
            EntityOperator.AND,
            EntityCondition.makeCondition(
                EntityCondition.makeCondition(fromDateName, EntityOperator.EQUALS, null),
                EntityOperator.OR,
                EntityCondition.makeCondition(fromDateName, EntityOperator.LESS_THAN_EQUAL_TO, moment)
           )
      );
来完成的。

另外还有一个是查询于指定时间相比较未过期的实体。

date = UtilDateTime.toDate("12/30/2008 00:00:00");

conditions = EntityUtil.getFilterByDateExpr(date);

通过EntityUtil.getFilterByDateExpr(date);来快捷的生成时间条件。

当然我们还可以自定义设置有效期的开始时间字段名字和结束时间名字。

你可能感兴趣的:(关于实体过期快捷方式)