Spring data mongodb ObjectId ,根據id日期條件查詢,省略@CreatedDate注解


 

先看看ObjectId 的json 結構,非常豐富,這里有唯一機器碼,日期,時間戳等等,所以強烈建議ID 使用 ObjectId 類型,並且自帶索引

 

 Spring data mongodb 注解 @CreatedDate 可以記錄創建時間,但是有了那么強大的ID ,我們還需要這個嗎?

 

ObjectId 有一個構造方法

  public ObjectId(Date time) {
        this(time, _genmachine, _nextInc.getAndIncrement());
    }

使用Dto 實體根據創建日期范圍查詢,親測有效

   if (order.getCreateEndDate() != null && order.getCreateDate() != null)
            query.addCriteria(where("objectId").gte(new ObjectId(LocalDateTimeUtil.LocalDateTimeToUdate(order.getCreateDate()))).lte(new ObjectId(LocalDateTimeUtil.LocalDateTimeToUdate(order.getCreateEndDate()))));
        else {
            Optional.ofNullable(order.getCreateDate()).ifPresent(createDate -> query.addCriteria(where("objectId").gte(new ObjectId(LocalDateTimeUtil.LocalDateTimeToUdate(createDate)))));
            Optional.ofNullable(order.getCreateEndDate()).ifPresent(endDate -> query.addCriteria(where("objectId").lte(new ObjectId(LocalDateTimeUtil.LocalDateTimeToUdate(endDate)))));
        }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM