解析--andOperator--方法

andOperator方法

它的机制是:新建一个criteria对象放到当前criteria对象的criteriaChain属性中。

 

关于这个新建的criteria对象:

它的key属性是$and

它的isValue值比较特别,是一个list集合,集合中是dbObject对象。

 

dbObject对象由来:

此方法会传进来一个(或多个)criteria对象,首先会遍历这个对象的criteriaChain属性,这样就可以得到它的全部的criteria对象,即关于多个属性的条件,关于每一个属性的条件,都会生成一个dbObjce对象,多个属性就会得到多个dbObject对象,这个对象相当于一个map集合,它的键值就是属性名,也就是criteria对象的key值,它的值是一个dbObject对象。这个对象的结构是:key-valuemap或者是key--map

(个人认为前一种情况中的map应该为空,也就是说要么是key--value或者是key--map,因为key--value代表key是什么,而key--map表示key的约束,比如取值范围3<key<4,这样的形式存到map中就是两组值,一个表示大于3,一个表示小于4

也就是说对应于多个属性的约束条件,会生成多个dbObject 对象,对象的值就是key--value或者key--map。然后又有一个新的dbObject对象把这些dbObject对象整合到一起,这个总的dbObject对象就是方法参数中的那个criteria对象对应生成的,如果传入的是多个criteria对象,那么就会产生多个dbObject,然后把这些dbObject放到list集合中,这个list就是那个isValue的值。

 

PS

1.此对象中的criteriachain属性中可能包含着好几个属性的约束条件,对应于每一个属性,都会有一个criteria对象,criteria对象的属性:keyisValue

map集合都是描述当前某个条件的,它的criteriaChain属性就是把好多个属性封装到一起.

 

2.封装key--value或者key--map的那个dbObject对象中应该只有一组数据,因为key不能重复,一个criteria对应一个dbObjectdbObject中的键值就是criteriakey值,而criteria只有一个key值。

 

3.DBObject是一个接口,这个接口的实现类basicDBObject实现了map接口,虽然它不是一个map,但它里面定义了一些针对map集合的操作。

 

概述过程是:

一个criteria对象,它的key$and,它的isValue是一个list集合

List集合中放的是dbObject对象,dbObject对象中有一个map集合,集合的每一个键名对应一个属性名(实体类的属性,如age属性),它的值就是criteria对象的map或者isValue的值。

 

其他的如:orOperatornotOperator是一样的。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值