content: package org.zeus.bean;
  
  import java.util.ArrayList;
  import java.util.Date;
  import java.util.List;
  
  public class UserExample {
      protected String orderByClause;
  
      protected boolean distinct;
  
      protected List<Criteria> oredCriteria;
  
      public UserExample() {
          oredCriteria = new ArrayList<Criteria>();
      }
  
      public void setOrderByClause(String orderByClause) {
          this.orderByClause = orderByClause;
      }
  
      public String getOrderByClause() {
          return orderByClause;
      }
  
      public void setDistinct(boolean distinct) {
          this.distinct = distinct;
      }
  
      public boolean isDistinct() {
          return distinct;
      }
  
      public List<Criteria> getOredCriteria() {
          return oredCriteria;
      }
  
      public void or(Criteria criteria) {
          oredCriteria.add(criteria);
      }
  
      public Criteria or() {
          Criteria criteria = createCriteriaInternal();
          oredCriteria.add(criteria);
          return criteria;
      }
  
      public Criteria createCriteria() {
          Criteria criteria = createCriteriaInternal();
          if (oredCriteria.size() == 0) {
              oredCriteria.add(criteria);
          }
          return criteria;
      }
  
      protected Criteria createCriteriaInternal() {
          Criteria criteria = new Criteria();
          return criteria;
      }
  
      public void clear() {
          oredCriteria.clear();
          orderByClause = null;
          distinct = false;
      }
  
      protected abstract static class GeneratedCriteria {
          protected List<Criterion> criteria;
  
          protected GeneratedCriteria() {
              super();
              criteria = new ArrayList<Criterion>();
          }
  
          public boolean isValid() {
              return criteria.size() > 0;
          }
  
          public List<Criterion> getAllCriteria() {
              return criteria;
          }
  
          public List<Criterion> getCriteria() {
              return criteria;
          }
  
          protected void addCriterion(String condition) {
              if (condition == null) {
                  throw new RuntimeException("Value for condition cannot be null");
              }
              criteria.add(new Criterion(condition));
          }
  
          protected void addCriterion(String condition, Object value, String property) {
              if (value == null) {
                  throw new RuntimeException("Value for " + property + " cannot be null");
              }
              criteria.add(new Criterion(condition, value));
          }
  
          protected void addCriterion(String condition, Object value1, Object value2, String property) {
              if (value1 == null || value2 == null) {
                  throw new RuntimeException("Between values for " + property + " cannot be null");
              }
              criteria.add(new Criterion(condition, value1, value2));
          }
  
          public Criteria andIdIsNull() {
              addCriterion("id is null");
              return (Criteria) this;
          }
  
          public Criteria andIdIsNotNull() {
              addCriterion("id is not null");
              return (Criteria) this;
          }
  
          public Criteria andIdEqualTo(Integer value) {
              addCriterion("id =", value, "id");
              return (Criteria) this;
          }
  
          public Criteria andIdNotEqualTo(Integer value) {
              addCriterion("id <>", value, "id");
              return (Criteria) this;
          }
  
          public Criteria andIdGreaterThan(Integer value) {
              addCriterion("id >", value, "id");
              return (Criteria) this;
          }
  
          public Criteria andIdGreaterThanOrEqualTo(Integer value) {
              addCriterion("id >=", value, "id");
              return (Criteria) this;
          }
  
          public Criteria andIdLessThan(Integer value) {
              addCriterion("id <", value, "id");
              return (Criteria) this;
          }
  
          public Criteria andIdLessThanOrEqualTo(Integer value) {
              addCriterion("id <=", value, "id");
              return (Criteria) this;
          }
  
          public Criteria andIdIn(List<Integer> values) {
              addCriterion("id in", values, "id");
              return (Criteria) this;
          }
  
          public Criteria andIdNotIn(List<Integer> values) {
              addCriterion("id not in", values, "id");
              return (Criteria) this;
          }
  
          public Criteria andIdBetween(Integer value1, Integer value2) {
              addCriterion("id between", value1, value2, "id");
              return (Criteria) this;
          }
  
          public Criteria andIdNotBetween(Integer value1, Integer value2) {
              addCriterion("id not between", value1, value2, "id");
              return (Criteria) this;
          }
  
          public Criteria andNameIsNull() {
              addCriterion("name is null");
              return (Criteria) this;
          }
  
          public Criteria andNameIsNotNull() {
              addCriterion("name is not null");
              return (Criteria) this;
          }
  
          public Criteria andNameEqualTo(String value) {
              addCriterion("name =", value, "name");
              return (Criteria) this;
          }
  
          public Criteria andNameNotEqualTo(String value) {
              addCriterion("name <>", value, "name");
              return (Criteria) this;
          }
  
          public Criteria andNameGreaterThan(String value) {
              addCriterion("name >", value, "name");
              return (Criteria) this;
          }
  
          public Criteria andNameGreaterThanOrEqualTo(String value) {
              addCriterion("name >=", value, "name");
              return (Criteria) this;
          }
  
          public Criteria andNameLessThan(String value) {
              addCriterion("name <", value, "name");
              return (Criteria) this;
          }
  
          public Criteria andNameLessThanOrEqualTo(String value) {
              addCriterion("name <=", value, "name");
              return (Criteria) this;
          }
  
          public Criteria andNameLike(String value) {
              addCriterion("name like", value, "name");
              return (Criteria) this;
          }
  
          public Criteria andNameNotLike(String value) {
              addCriterion("name not like", value, "name");
              return (Criteria) this;
          }
  
          public Criteria andNameIn(List<String> values) {
              addCriterion("name in", values, "name");
              return (Criteria) this;
          }
  
          public Criteria andNameNotIn(List<String> values) {
              addCriterion("name not in", values, "name");
              return (Criteria) this;
          }
  
          public Criteria andNameBetween(String value1, String value2) {
              addCriterion("name between", value1, value2, "name");
              return (Criteria) this;
          }
  
          public Criteria andNameNotBetween(String value1, String value2) {
              addCriterion("name not between", value1, value2, "name");
              return (Criteria) this;
          }
  
          public Criteria andEmailIsNull() {
              addCriterion("email is null");
              return (Criteria) this;
          }
  
          public Criteria andEmailIsNotNull() {
              addCriterion("email is not null");
              return (Criteria) this;
          }
  
          public Criteria andEmailEqualTo(String value) {
              addCriterion("email =", value, "email");
              return (Criteria) this;
          }
  
          public Criteria andEmailNotEqualTo(String value) {
              addCriterion("email <>", value, "email");
              return (Criteria) this;
          }
  
          public Criteria andEmailGreaterThan(String value) {
              addCriterion("email >", value, "email");
              return (Criteria) this;
          }
  
          public Criteria andEmailGreaterThanOrEqualTo(String value) {
              addCriterion("email >=", value, "email");
              return (Criteria) this;
          }
  
          public Criteria andEmailLessThan(String value) {
              addCriterion("email <", value, "email");
              return (Criteria) this;
          }
  
          public Criteria andEmailLessThanOrEqualTo(String value) {
              addCriterion("email <=", value, "email");
              return (Criteria) this;
          }
  
          public Criteria andEmailLike(String value) {
              addCriterion("email like", value, "email");
              return (Criteria) this;
          }
  
          public Criteria andEmailNotLike(String value) {
              addCriterion("email not like", value, "email");
              return (Criteria) this;
          }
  
          public Criteria andEmailIn(List<String> values) {
              addCriterion("email in", values, "email");
              return (Criteria) this;
          }
  
          public Criteria andEmailNotIn(List<String> values) {
              addCriterion("email not in", values, "email");
              return (Criteria) this;
          }
  
          public Criteria andEmailBetween(String value1, String value2) {
              addCriterion("email between", value1, value2, "email");
              return (Criteria) this;
          }
  
          public Criteria andEmailNotBetween(String value1, String value2) {
              addCriterion("email not between", value1, value2, "email");
              return (Criteria) this;
          }
  
          public Criteria andPasswordIsNull() {
              addCriterion("password is null");
              return (Criteria) this;
          }
  
          public Criteria andPasswordIsNotNull() {
              addCriterion("password is not null");
              return (Criteria) this;
          }
  
          public Criteria andPasswordEqualTo(String value) {
              addCriterion("password =", value, "password");
              return (Criteria) this;
          }
  
          public Criteria andPasswordNotEqualTo(String value) {
              addCriterion("password <>", value, "password");
              return (Criteria) this;
          }
  
          public Criteria andPasswordGreaterThan(String value) {
              addCriterion("password >", value, "password");
              return (Criteria) this;
          }
  
          public Criteria andPasswordGreaterThanOrEqualTo(String value) {
              addCriterion("password >=", value, "password");
              return (Criteria) this;
          }
  
          public Criteria andPasswordLessThan(String value) {
              addCriterion("password <", value, "password");
              return (Criteria) this;
          }
  
          public Criteria andPasswordLessThanOrEqualTo(String value) {
              addCriterion("password <=", value, "password");
              return (Criteria) this;
          }
  
          public Criteria andPasswordLike(String value) {
              addCriterion("password like", value, "password");
              return (Criteria) this;
          }
  
          public Criteria andPasswordNotLike(String value) {
              addCriterion("password not like", value, "password");
              return (Criteria) this;
          }
  
          public Criteria andPasswordIn(List<String> values) {
              addCriterion("password in", values, "password");
              return (Criteria) this;
          }
  
          public Criteria andPasswordNotIn(List<String> values) {
              addCriterion("password not in", values, "password");
              return (Criteria) this;
          }
  
          public Criteria andPasswordBetween(String value1, String value2) {
              addCriterion("password between", value1, value2, "password");
              return (Criteria) this;
          }
  
          public Criteria andPasswordNotBetween(String value1, String value2) {
              addCriterion("password not between", value1, value2, "password");
              return (Criteria) this;
          }
  
          public Criteria andLastLoginIsNull() {
              addCriterion("last_login is null");
              return (Criteria) this;
          }
  
          public Criteria andLastLoginIsNotNull() {
              addCriterion("last_login is not null");
              return (Criteria) this;
          }
  
          public Criteria andLastLoginEqualTo(String value) {
              addCriterion("last_login =", value, "lastLogin");
              return (Criteria) this;
          }
  
          public Criteria andLastLoginNotEqualTo(String value) {
              addCriterion("last_login <>", value, "lastLogin");
              return (Criteria) this;
          }
  
          public Criteria andLastLoginGreaterThan(String value) {
              addCriterion("last_login >", value, "lastLogin");
              return (Criteria) this;
          }
  
          public Criteria andLastLoginGreaterThanOrEqualTo(String value) {
              addCriterion("last_login >=", value, "lastLogin");
              return (Criteria) this;
          }
  
          public Criteria andLastLoginLessThan(String value) {
              addCriterion("last_login <", value, "lastLogin");
              return (Criteria) this;
          }
  
          public Criteria andLastLoginLessThanOrEqualTo(String value) {
              addCriterion("last_login <=", value, "lastLogin");
              return (Criteria) this;
          }
  
          public Criteria andLastLoginLike(String value) {
              addCriterion("last_login like", value, "lastLogin");
              return (Criteria) this;
          }
  
          public Criteria andLastLoginNotLike(String value) {
              addCriterion("last_login not like", value, "lastLogin");
              return (Criteria) this;
          }
  
          public Criteria andLastLoginIn(List<String> values) {
              addCriterion("last_login in", values, "lastLogin");
              return (Criteria) this;
          }
  
          public Criteria andLastLoginNotIn(List<String> values) {
              addCriterion("last_login not in", values, "lastLogin");
              return (Criteria) this;
          }
  
          public Criteria andLastLoginBetween(String value1, String value2) {
              addCriterion("last_login between", value1, value2, "lastLogin");
              return (Criteria) this;
          }
  
          public Criteria andLastLoginNotBetween(String value1, String value2) {
              addCriterion("last_login not between", value1, value2, "lastLogin");
              return (Criteria) this;
          }
  
          public Criteria andCreatedTimeIsNull() {
              addCriterion("created_time is null");
              return (Criteria) this;
          }
  
          public Criteria andCreatedTimeIsNotNull() {
              addCriterion("created_time is not null");
              return (Criteria) this;
          }
  
          public Criteria andCreatedTimeEqualTo(String value) {
              addCriterion("created_time =", value, "createdTime");
              return (Criteria) this;
          }
  
          public Criteria andCreatedTimeNotEqualTo(String value) {
              addCriterion("created_time <>", value, "createdTime");
              return (Criteria) this;
          }
  
          public Criteria andCreatedTimeGreaterThan(String value) {
              addCriterion("created_time >", value, "createdTime");
              return (Criteria) this;
          }
  
          public Criteria andCreatedTimeGreaterThanOrEqualTo(String value) {
              addCriterion("created_time >=", value, "createdTime");
              return (Criteria) this;
          }
  
          public Criteria andCreatedTimeLessThan(String value) {
              addCriterion("created_time <", value, "createdTime");
              return (Criteria) this;
          }
  
          public Criteria andCreatedTimeLessThanOrEqualTo(String value) {
              addCriterion("created_time <=", value, "createdTime");
              return (Criteria) this;
          }
  
          public Criteria andCreatedTimeLike(String value) {
              addCriterion("created_time like", value, "createdTime");
              return (Criteria) this;
          }
  
          public Criteria andCreatedTimeNotLike(String value) {
              addCriterion("created_time not like", value, "createdTime");
              return (Criteria) this;
          }
  
          public Criteria andCreatedTimeIn(List<String> values) {
              addCriterion("created_time in", values, "createdTime");
              return (Criteria) this;
          }
  
          public Criteria andCreatedTimeNotIn(List<String> values) {
              addCriterion("created_time not in", values, "createdTime");
              return (Criteria) this;
          }
  
          public Criteria andCreatedTimeBetween(String value1, String value2) {
              addCriterion("created_time between", value1, value2, "createdTime");
              return (Criteria) this;
          }
  
          public Criteria andCreatedTimeNotBetween(String value1, String value2) {
              addCriterion("created_time not between", value1, value2, "createdTime");
              return (Criteria) this;
          }
  
          public Criteria andAccountStatusIsNull() {
              addCriterion("account_status is null");
              return (Criteria) this;
          }
  
          public Criteria andAccountStatusIsNotNull() {
              addCriterion("account_status is not null");
              return (Criteria) this;
          }
  
          public Criteria andAccountStatusEqualTo(String value) {
              addCriterion("account_status =", value, "accountStatus");
              return (Criteria) this;
          }
  
          public Criteria andAccountStatusNotEqualTo(String value) {
              addCriterion("account_status <>", value, "accountStatus");
              return (Criteria) this;
          }
  
          public Criteria andAccountStatusGreaterThan(String value) {
              addCriterion("account_status >", value, "accountStatus");
              return (Criteria) this;
          }
  
          public Criteria andAccountStatusGreaterThanOrEqualTo(String value) {
              addCriterion("account_status >=", value, "accountStatus");
              return (Criteria) this;
          }
  
          public Criteria andAccountStatusLessThan(String value) {
              addCriterion("account_status <", value, "accountStatus");
              return (Criteria) this;
          }
  
          public Criteria andAccountStatusLessThanOrEqualTo(String value) {
              addCriterion("account_status <=", value, "accountStatus");
              return (Criteria) this;
          }
  
          public Criteria andAccountStatusLike(String value) {
              addCriterion("account_status like", value, "accountStatus");
              return (Criteria) this;
          }
  
          public Criteria andAccountStatusNotLike(String value) {
              addCriterion("account_status not like", value, "accountStatus");
              return (Criteria) this;
          }
  
          public Criteria andAccountStatusIn(List<String> values) {
              addCriterion("account_status in", values, "accountStatus");
              return (Criteria) this;
          }
  
          public Criteria andAccountStatusNotIn(List<String> values) {
              addCriterion("account_status not in", values, "accountStatus");
              return (Criteria) this;
          }
  
          public Criteria andAccountStatusBetween(String value1, String value2) {
              addCriterion("account_status between", value1, value2, "accountStatus");
              return (Criteria) this;
          }
  
          public Criteria andAccountStatusNotBetween(String value1, String value2) {
              addCriterion("account_status not between", value1, value2, "accountStatus");
              return (Criteria) this;
          }
  
          public Criteria andPhotoIsNull() {
              addCriterion("photo is null");
              return (Criteria) this;
          }
  
          public Criteria andPhotoIsNotNull() {
              addCriterion("photo is not null");
              return (Criteria) this;
          }
  
          public Criteria andPhotoEqualTo(String value) {
              addCriterion("photo =", value, "photo");
              return (Criteria) this;
          }
  
          public Criteria andPhotoNotEqualTo(String value) {
              addCriterion("photo <>", value, "photo");
              return (Criteria) this;
          }
  
          public Criteria andPhotoGreaterThan(String value) {
              addCriterion("photo >", value, "photo");
              return (Criteria) this;
          }
  
          public Criteria andPhotoGreaterThanOrEqualTo(String value) {
              addCriterion("photo >=", value, "photo");
              return (Criteria) this;
          }
  
          public Criteria andPhotoLessThan(String value) {
              addCriterion("photo <", value, "photo");
              return (Criteria) this;
          }
  
          public Criteria andPhotoLessThanOrEqualTo(String value) {
              addCriterion("photo <=", value, "photo");
              return (Criteria) this;
          }
  
          public Criteria andPhotoLike(String value) {
              addCriterion("photo like", value, "photo");
              return (Criteria) this;
          }
  
          public Criteria andPhotoNotLike(String value) {
              addCriterion("photo not like", value, "photo");
              return (Criteria) this;
          }
  
          public Criteria andPhotoIn(List<String> values) {
              addCriterion("photo in", values, "photo");
              return (Criteria) this;
          }
  
          public Criteria andPhotoNotIn(List<String> values) {
              addCriterion("photo not in", values, "photo");
              return (Criteria) this;
          }
  
          public Criteria andPhotoBetween(String value1, String value2) {
              addCriterion("photo between", value1, value2, "photo");
              return (Criteria) this;
          }
  
          public Criteria andPhotoNotBetween(String value1, String value2) {
              addCriterion("photo not between", value1, value2, "photo");
              return (Criteria) this;
          }
  
          public Criteria andDeletedflagIsNull() {
              addCriterion("deletedflag is null");
              return (Criteria) this;
          }
  
          public Criteria andDeletedflagIsNotNull() {
              addCriterion("deletedflag is not null");
              return (Criteria) this;
          }
  
          public Criteria andDeletedflagEqualTo(String value) {
              addCriterion("deletedflag =", value, "deletedflag");
              return (Criteria) this;
          }
  
          public Criteria andDeletedflagNotEqualTo(String value) {
              addCriterion("deletedflag <>", value, "deletedflag");
              return (Criteria) this;
          }
  
          public Criteria andDeletedflagGreaterThan(String value) {
              addCriterion("deletedflag >", value, "deletedflag");
              return (Criteria) this;
          }
  
          public Criteria andDeletedflagGreaterThanOrEqualTo(String value) {
              addCriterion("deletedflag >=", value, "deletedflag");
              return (Criteria) this;
          }
  
          public Criteria andDeletedflagLessThan(String value) {
              addCriterion("deletedflag <", value, "deletedflag");
              return (Criteria) this;
          }
  
          public Criteria andDeletedflagLessThanOrEqualTo(String value) {
              addCriterion("deletedflag <=", value, "deletedflag");
              return (Criteria) this;
          }
  
          public Criteria andDeletedflagLike(String value) {
              addCriterion("deletedflag like", value, "deletedflag");
              return (Criteria) this;
          }
  
          public Criteria andDeletedflagNotLike(String value) {
              addCriterion("deletedflag not like", value, "deletedflag");
              return (Criteria) this;
          }
  
          public Criteria andDeletedflagIn(List<String> values) {
              addCriterion("deletedflag in", values, "deletedflag");
              return (Criteria) this;
          }
  
          public Criteria andDeletedflagNotIn(List<String> values) {
              addCriterion("deletedflag not in", values, "deletedflag");
              return (Criteria) this;
          }
  
          public Criteria andDeletedflagBetween(String value1, String value2) {
              addCriterion("deletedflag between", value1, value2, "deletedflag");
              return (Criteria) this;
          }
  
          public Criteria andDeletedflagNotBetween(String value1, String value2) {
              addCriterion("deletedflag not between", value1, value2, "deletedflag");
              return (Criteria) this;
          }
  
          public Criteria andMobileIsNull() {
              addCriterion("mobile is null");
              return (Criteria) this;
          }
  
          public Criteria andMobileIsNotNull() {
              addCriterion("mobile is not null");
              return (Criteria) this;
          }
  
          public Criteria andMobileEqualTo(Integer value) {
              addCriterion("mobile =", value, "mobile");
              return (Criteria) this;
          }
  
          public Criteria andMobileNotEqualTo(Integer value) {
              addCriterion("mobile <>", value, "mobile");
              return (Criteria) this;
          }
  
          public Criteria andMobileGreaterThan(Integer value) {
              addCriterion("mobile >", value, "mobile");
              return (Criteria) this;
          }
  
          public Criteria andMobileGreaterThanOrEqualTo(Integer value) {
              addCriterion("mobile >=", value, "mobile");
              return (Criteria) this;
          }
  
          public Criteria andMobileLessThan(Integer value) {
              addCriterion("mobile <", value, "mobile");
              return (Criteria) this;
          }
  
          public Criteria andMobileLessThanOrEqualTo(Integer value) {
              addCriterion("mobile <=", value, "mobile");
              return (Criteria) this;
          }
  
          public Criteria andMobileIn(List<Integer> values) {
              addCriterion("mobile in", values, "mobile");
              return (Criteria) this;
          }
  
          public Criteria andMobileNotIn(List<Integer> values) {
              addCriterion("mobile not in", values, "mobile");
              return (Criteria) this;
          }
  
          public Criteria andMobileBetween(Integer value1, Integer value2) {
              addCriterion("mobile between", value1, value2, "mobile");
              return (Criteria) this;
          }
  
          public Criteria andMobileNotBetween(Integer value1, Integer value2) {
              addCriterion("mobile not between", value1, value2, "mobile");
              return (Criteria) this;
          }
  
          public Criteria andUpdateTimeIsNull() {
              addCriterion("update_time is null");
              return (Criteria) this;
          }
  
          public Criteria andUpdateTimeIsNotNull() {
              addCriterion("update_time is not null");
              return (Criteria) this;
          }
  
          public Criteria andUpdateTimeEqualTo(Date value) {
              addCriterion("update_time =", value, "updateTime");
              return (Criteria) this;
          }
  
          public Criteria andUpdateTimeNotEqualTo(Date value) {
              addCriterion("update_time <>", value, "updateTime");
              return (Criteria) this;
          }
  
          public Criteria andUpdateTimeGreaterThan(Date value) {
              addCriterion("update_time >", value, "updateTime");
              return (Criteria) this;
          }
  
          public Criteria andUpdateTimeGreaterThanOrEqualTo(Date value) {
              addCriterion("update_time >=", value, "updateTime");
              return (Criteria) this;
          }
  
          public Criteria andUpdateTimeLessThan(Date value) {
              addCriterion("update_time <", value, "updateTime");
              return (Criteria) this;
          }
  
          public Criteria andUpdateTimeLessThanOrEqualTo(Date value) {
              addCriterion("update_time <=", value, "updateTime");
              return (Criteria) this;
          }
  
          public Criteria andUpdateTimeIn(List<Date> values) {
              addCriterion("update_time in", values, "updateTime");
              return (Criteria) this;
          }
  
          public Criteria andUpdateTimeNotIn(List<Date> values) {
              addCriterion("update_time not in", values, "updateTime");
              return (Criteria) this;
          }
  
          public Criteria andUpdateTimeBetween(Date value1, Date value2) {
              addCriterion("update_time between", value1, value2, "updateTime");
              return (Criteria) this;
          }
  
          public Criteria andUpdateTimeNotBetween(Date value1, Date value2) {
              addCriterion("update_time not between", value1, value2, "updateTime");
              return (Criteria) this;
          }
      }
  
      public static class Criteria extends GeneratedCriteria {
  
          protected Criteria() {
              super();
          }
      }
  
      public static class Criterion {
          private String condition;
  
          private Object value;
  
          private Object secondValue;
  
          private boolean noValue;
  
          private boolean singleValue;
  
          private boolean betweenValue;
  
          private boolean listValue;
  
          private String typeHandler;
  
          public String getCondition() {
              return condition;
          }
  
          public Object getValue() {
              return value;
          }
  
          public Object getSecondValue() {
              return secondValue;
          }
  
          public boolean isNoValue() {
              return noValue;
          }
  
          public boolean isSingleValue() {
              return singleValue;
          }
  
          public boolean isBetweenValue() {
              return betweenValue;
          }
  
          public boolean isListValue() {
              return listValue;
          }
  
          public String getTypeHandler() {
              return typeHandler;
          }
  
          protected Criterion(String condition) {
              super();
              this.condition = condition;
              this.typeHandler = null;
              this.noValue = true;
          }
  
          protected Criterion(String condition, Object value, String typeHandler) {
              super();
              this.condition = condition;
              this.value = value;
              this.typeHandler = typeHandler;
              if (value instanceof List<?>) {
                  this.listValue = true;
              } else {
                  this.singleValue = true;
              }
          }
  
          protected Criterion(String condition, Object value) {
              this(condition, value, null);
          }
  
          protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
              super();
              this.condition = condition;
              this.value = value;
              this.secondValue = secondValue;
              this.typeHandler = typeHandler;
              this.betweenValue = true;
          }
  
          protected Criterion(String condition, Object value, Object secondValue) {
              this(condition, value, secondValue, null);
          }
      }
  }