mongoDB-Criteria


org.springframework.data.mongodb.core.query中Criteria類

相當於SQL中的where條件
屬性說明:

private static final Object NOT_SET = new Object();
@Nullable
// 存放屬性值
private String key;
// 存放一系列條件
private List<Criteria> criteriaChain;
// map集合,也是用來存放條件,除了is方法代表的條件外
// 其他的包括lt,lte,gt,gte,ne,in,nin,mod,all,size,exists,not,regex等方法都是存放到此map集合中。
private LinkedHashMap<String, Object> criteria = new LinkedHashMap();
@Nullable
// 用來存放is方法傳進來的值
private Object isValue;

方法(where、and):

// 靜態方法,用類名或實例對象調用,他會創建一個Criteria對象,把參數傳給此對象的key,返回這個對象
public static Criteria where(String key) {
    return new Criteria(key);
}
// 實例方法,用criteria對象調用此方法,他會創建並返回一個新的對象,原先的Criteria對象被放在criteriachain屬性中傳給新對象的criteriachain
public Criteria and(String key) {
        return new Criteria(this.criteriaChain, key);
}

 說明:

通過where創建的新對象的criteriachain屬性是在構造方法中new出來的,而通過and的話是作為構造方法的參數傳進去的。

一個criteria對象只保存一個條件,多個條件通過多個criteria對象保存,每創建一個criteria對象都會把自身添加到自己的criteriachain屬性中。

如果重復使用where創建對象,以前的條件就會丟失,因為他的criteriachain是新建的。

eg.

Criteria criteria = new Criteria();
criteria.and(key).is(value);


免責聲明!

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



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