docs: public static void parseConditionToJunction(Condition condition,
  			Junction junction, Class<?> persistentClass) {
  		// 子条件
  		List<Condition> subConditions = condition.getSubConditions();
  
  		// 有子条件则进行遍历获取最终的条件
  		if (null != subConditions && !subConditions.isEmpty()) {
  			// 子条件当中的and条件集合
  			List<Condition> andConditions = condition.getAndConditions();
  			if (null != andConditions && !andConditions.isEmpty()) {
  				// 创建一个and条件集合
  				Conjunction conj = Restrictions.conjunction();
  				// 添加到父条件中
  				junction.add(conj);
  				for (Condition andCondition : andConditions) {
  					/*
  					 * 把每个条件看做是一个大的条件(包含 and 和 or 2个部分),
  					 * 然后使用disjunction连接条件集合来组合这个大条件的(and项 和 or项);
  					 * 因为and项和or项都已经被分为2个部分
  					 * ,而且又是用disjunction来组合,所以可以保证一个大条件只会被or连接符分隔成2个部分
  					 */
  					Disjunction dj = Restrictions.disjunction();
  					conj.add(dj);
  					parseConditionToJunction(andCondition, dj, persistentClass);
  				}
  			}
  
  			// 子条件当中的or条件集合
  			List<Condition> orConditions = condition.getOrConditions();
  			if (null != orConditions && !orConditions.isEmpty()) {
  				// 创建一个or条件集合
  				Disjunction disj = Restrictions.disjunction();
  				// 添加到父条件中
  				junction.add(disj);
  				for (Condition orCondition : orConditions) {
  					// 这里的实现原理与上面的andCondition的处理相同
  					Disjunction dj = Restrictions.disjunction();
  					disj.add(dj);
  					parseConditionToJunction(orCondition, dj, persistentClass);
  				}
  			}
  		} else {
  			// 条件为最终条件，转换为符合Hibernate的条件，然后条件到条件集合中
  			junction.add(condition.getCriterion(persistentClass));
  		}
  	}