List of usage examples for org.hibernate.criterion Restrictions sqlRestriction
public static Criterion sqlRestriction(String sql)
From source file:com.cimmyt.model.dao.impl.LogDAOImpl.java
License:Apache License
@Override protected void buildCriteria(DetachedCriteria _criteria, Log filter, Integer id) { this.criteria = _criteria; try {/*from ww w . j a v a2s . c o m*/ if (initDate != null && endDate != null) { criteria.add(Restrictions.between("operationDate", StrUtils.getDateStandarFromStr(initDate), StrUtils.getDateStandarFromStr(endDate))); } else if (initDate != null && endDate == null) { criteria.add(Restrictions.ge("operationDate", StrUtils.getDateStandarFromStr(initDate))); } else if (endDate != null && initDate == null) { criteria.add(Restrictions.le("operationDate", StrUtils.getDateStandarFromStr(endDate))); } } catch (ParseException pEx) { pEx.printStackTrace(); } switch (id) { case ConstantsDNA.ROLE_ADMINISTRATOR: validateRoleResearcher(filter); break; case ConstantsDNA.ROLE_DATA_MANAGER: addCriteriaNotAdministrator(); validateRoleResearcher(filter); break; case ConstantsDNA.ROLE_RESEARCHER: addCriteriaNotAdministrator(); criteria.add(Restrictions.sqlRestriction( "this_.user_version_id not in (Select u.user_version_id from st_user_version u where u.idst_rol =" + ConstantsDNA.ROLE_DATA_MANAGER + ")")); validateRoleResearcher(filter); break; } if (filter.getLogTyperOperation() != null && filter.getLogTyperOperation().getIdLogTypeOperation() != null) criteria.add(Restrictions.eq("logTyperOperation.idLogTypeOperation", filter.getLogTyperOperation().getIdLogTypeOperation())); criteria.addOrder(Order.asc("operationDate")); }
From source file:com.cimmyt.model.dao.impl.LogDAOImpl.java
License:Apache License
private void addCriteriaNotAdministrator() { criteria.add(Restrictions.sqlRestriction( "this_.user_version_id not in (Select u.user_version_id from st_user_version u where u.idst_rol =" + ConstantsDNA.ROLE_ADMINISTRATOR + ")")); }
From source file:com.cimmyt.model.dao.impl.LogDAOImpl.java
License:Apache License
private void validateRoleResearcher(Log filter) { if (filter.getStUserVersion() != null && filter.getStUserVersion().getStRole() != null && filter.getStUserVersion().getStRole().getIdstRol().intValue() == ConstantsDNA.ROLE_RESEARCHER) { if (filter.getStUserVersion() != null && filter.getStUserVersion().getInvestigator() != null && filter.getStUserVersion().getInvestigator().getInvestigatorid().intValue() > 0) { criteria.add(Restrictions.sqlRestriction( "this_.user_version_id in (select u.user_version_id from st_user_version u where u.investigator_id =" + filter.getStUserVersion().getInvestigator().getInvestigatorid().intValue() + ")")); }// w w w . ja v a 2s . co m } else validateCriteria(filter); }
From source file:com.dell.asm.asmcore.asmmanager.db.DeviceInventoryDAO.java
License:Open Source License
/** * Retrieve all from Device Inventory./*ww w.j a v a 2s . co m*/ * * @return list of entities */ @SuppressWarnings("unchecked") public List<DeviceInventoryEntity> getAllDeviceInventory(List<SortParamParser.SortInfo> sortInfos, List<FilterParamParser.FilterInfo> filterInfos, PaginationInfo paginationInfo) throws AsmManagerDAOException { Session session = null; Transaction tx = null; List<DeviceInventoryEntity> entityList = new ArrayList<DeviceInventoryEntity>(); try { // NOTE[fcarta] need to at this here so we dont nest the session / transaction List<String> refIdsServices = ListUtils.EMPTY_LIST; List<String> refIdsGroups = ListUtils.EMPTY_LIST; List<String> refIdsAllGroups = ListUtils.EMPTY_LIST; boolean spFilterSet = false; boolean spGlobalFilterSet = false; if (CollectionUtils.isNotEmpty(filterInfos)) { for (FilterParamParser.FilterInfo filterInfo : filterInfos) { // if there is a service filter then grab the ref id for the device if (StringUtils.equals(SERVICE_FILTER_PARAM, filterInfo.getColumnName())) { refIdsServices = getRefIdsOfDevicesByDeploymentIds(filterInfo.getColumnValue()); } else if (StringUtils.equals(SERVERPOOL_FILTER_PARAM, filterInfo.getColumnName())) { if (filterInfo.getColumnValue() .contains(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_POOL_GLOBAL_ID)) { refIdsAllGroups = getRefIdsOfDevicesByGroupIds(filterInfo.getColumnValue()); spGlobalFilterSet = true; } else { refIdsGroups = getRefIdsOfDevicesByGroupIds(filterInfo.getColumnValue()); spFilterSet = true; } } } } session = _dao._database.getNewSession(); tx = session.beginTransaction(); Criteria criteria = session.createCriteria(DeviceInventoryEntity.class); if (sortInfos != null) { BaseDAO.addSortCriteria(criteria, sortInfos); } if (filterInfos != null) { final List<FilterParamParser.FilterInfo> notFound = BaseDAO.addFilterCriteria(criteria, filterInfos, DeviceInventoryEntity.class); if (CollectionUtils.isNotEmpty(notFound)) { for (FilterParamParser.FilterInfo filterInfo : notFound) { // if this is a filter by service then we need to get the subset of ref ids for devices // only in the deployment id subset passed if (StringUtils.equals(SERVICE_FILTER_PARAM, filterInfo.getColumnName())) { if (CollectionUtils.isNotEmpty(refIdsServices)) { criteria.add(Restrictions.in("refId", refIdsServices)); } } else if (StringUtils.equals(SERVERPOOL_FILTER_PARAM, filterInfo.getColumnName())) { if (spGlobalFilterSet) { if (refIdsAllGroups.isEmpty()) { // this means there are no servers in any server pool - all are in Global criteria.add(Restrictions.sqlRestriction("(1=1)")); } else { criteria.add(Restrictions.not(Restrictions.in("refId", refIdsAllGroups))); } } else if (spFilterSet) { if (refIdsGroups.isEmpty()) { criteria.add(Restrictions.sqlRestriction("(1=0)")); } else { criteria.add(Restrictions.in("refId", refIdsGroups)); } } } else { criteria.createAlias("deviceInventoryEntity", "deviceInventoryEntityAlias"); criteria.add(Restrictions.eq("deviceInventoryEntityAlias.deviceKey", filterInfo.getColumnName())); if (filterInfo.getColumnValue().size() == 1) { criteria.add(Restrictions.eq("deviceInventoryEntityAlias.deviceValue", filterInfo.getColumnValue().get(0))); } else if (filterInfo.getColumnValue().size() > 1) { criteria.add(Restrictions.in("deviceInventoryEntityAlias.deviceValue", filterInfo.getColumnValue())); } } } } } if (paginationInfo != null) { int offset = paginationInfo.getOffset(); int limit = paginationInfo.getLimit(); int pageSize = limit; criteria.setFirstResult(offset); criteria.setMaxResults(pageSize); } criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); entityList = criteria.list(); this.setFirmwareBasedOnDeployment(entityList); tx.commit(); } catch (Exception e) { logger.warn("Caught exception during get all devices in inventory: " + e, e); try { if (tx != null) { tx.rollback(); } } catch (Exception ex) { logger.warn("Unable to rollback transaction during get all devices: " + ex); } throw new AsmManagerDAOException("Caught exception during get all devices in inventory: ", e); } finally { try { if (session != null) { session.close(); } } catch (Exception ex) { logger.warn("Unable to close session during get all devices: " + ex); } } return entityList; }
From source file:com.dell.asm.asmcore.asmmanager.db.DeviceInventoryDAO.java
License:Open Source License
/** * Helper method to get total number of records with filter parameters * * @param filterInfos - List for holding filtering information parsed from filter query parameter value * @return int - total number of records *///w w w .j a va 2 s. c o m public Integer getTotalRecords(List<FilterParamParser.FilterInfo> filterInfos) { long totalRecords = 0; Session session = null; Transaction tx = null; try { session = _dao._database.getNewSession(); tx = session.beginTransaction(); Criteria criteria = session.createCriteria(DeviceInventoryEntity.class); final List<FilterParamParser.FilterInfo> notFound = BaseDAO.addFilterCriteria(criteria, filterInfos, DeviceInventoryEntity.class); if (CollectionUtils.isNotEmpty(notFound)) { for (FilterParamParser.FilterInfo filterInfo : notFound) { // if this is a filter by service then we need to get the subset of ref ids for devices // only in the deployment id subset passed if (StringUtils.equals(SERVICE_FILTER_PARAM, filterInfo.getColumnName())) { final List<String> refIds = getRefIdsOfDevicesByDeploymentIds(filterInfo.getColumnValue()); criteria.add(Restrictions.in("refId", refIds)); } else if (StringUtils.equals(SERVERPOOL_FILTER_PARAM, filterInfo.getColumnName())) { if (filterInfo.getColumnValue() .contains(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_POOL_GLOBAL_ID)) { final List<String> refIds = getRefIdsOfDevicesByGroupIds(filterInfo.getColumnValue()); if (refIds.isEmpty()) { criteria.add(Restrictions.sqlRestriction("(1=0)")); } else { criteria.add(Restrictions.not(Restrictions.in("refId", refIds))); } } else { final List<String> refIds = getRefIdsOfDevicesByGroupIds(filterInfo.getColumnValue()); if (refIds.isEmpty()) { criteria.add(Restrictions.sqlRestriction("(1=0)")); } else { criteria.add(Restrictions.in("refId", refIds)); } } } else { criteria.createAlias("deviceInventoryEntity", "deviceInventoryEntityAlias"); criteria.add(Restrictions.eq("deviceInventoryEntityAlias.deviceKey", filterInfo.getColumnName())); if (filterInfo.getColumnValue().size() == 1) { criteria.add(Restrictions.eq("deviceInventoryEntityAlias.deviceValue", filterInfo.getColumnValue().get(0))); } else if (filterInfo.getColumnValue().size() > 1) { criteria.add(Restrictions.in("deviceInventoryEntityAlias.deviceValue", filterInfo.getColumnValue())); } } } } totalRecords = (long) criteria.setProjection(Projections.rowCount()).uniqueResult(); tx.commit(); } catch (Exception e) { logger.error("Exception while getting getTotalRecords", e); if (tx != null) try { tx.rollback(); } catch (Exception e2) { logger.warn("Error during rollback", e2); } } finally { try { if (session != null) session.close(); } catch (Exception e2) { logger.warn("Error during session close", e2); } } return (int) totalRecords; }
From source file:com.eharmony.matching.seeking.translator.hibernate.HibernateQueryTranslator.java
License:Apache License
@Override protected <T> Criterion translate(NativeExpression e, Class<T> entityClass) { Class<?> expressionClass = e.getExpressionClass(); if (expressionClass == String.class) { return Restrictions.sqlRestriction("(" + e.getExpression().toString() + ")"); } else if (Criterion.class.isAssignableFrom(expressionClass)) { return (Criterion) e.getExpression(); } else {/*from w w w .j a va 2s .c o m*/ throw unsupported(e); } }
From source file:com.glaf.base.utils.HibernateUtil.java
License:Apache License
/** * //from w ww . j a va2s.c o m * @param map * @param forClass * @return */ public static DetachedCriteria getCriteria(Map<String, String> map, Class<?> forClass) { DetachedCriteria detachedCriteria = DetachedCriteria.forClass(forClass); Set<String> params = map.keySet(); // boolean createAliased = false; if (params != null) { Map<String, String> aliasMap = new java.util.HashMap<String, String>();// ?? int aliasNum = 0;// ??? Iterator<String> it = params.iterator(); while (it.hasNext()) { String key = (String) it.next(); String value = map.get(key) == null ? null : map.get(key).toString(); value = value == null ? value : value.trim(); if (key.startsWith(QUERY_PREFIX) && value != null && value.trim().length() > 0) { // ?? String name = key.substring(QUERY_PREFIX.length()); // ?? "=" String op = "eq"; if (name.indexOf("_") != -1) { int pos = name.lastIndexOf("_"); op = name.substring(pos + 1); name = name.substring(0, pos); } if ("me".equals(op)) { // ????? String maintAlias = detachedCriteria.getAlias(); // ? string detachedCriteria.add(Restrictions.sqlRestriction(maintAlias + "_." + name + "=" + value)); } else if ("zns".equals(op)) { // // ? string detachedCriteria.add(Restrictions.sqlRestriction(" 1 = 2 ")); } else if ("mn".equals(op)) { // ????? String maintAlias = detachedCriteria.getAlias(); // ? string detachedCriteria.add(Restrictions.sqlRestriction(maintAlias + "_." + name + " is NULL ")); } else if ("mnn".equals(op)) { // ????? String maintAlias = detachedCriteria.getAlias(); // ? string detachedCriteria .add(Restrictions.sqlRestriction(maintAlias + "_." + name + " is not NULL ")); } else if ("md".equals(op)) { // ????? String maintAlias = detachedCriteria.getAlias(); // ? string detachedCriteria.add(Restrictions.sqlRestriction(maintAlias + "_." + name + "=?", DateUtils.toDate(value), StandardBasicTypes.DATE)); } else if ("mis".equals(op)) { // in( ?_select ) String maintAlias = detachedCriteria.getAlias(); // ? string detachedCriteria.add( Restrictions.sqlRestriction(maintAlias + "_." + name + " in (" + value + ") ")); } else if ("xd".equals(op)) { // . date // ? string int pos = name.lastIndexOf("."); String alias = name.substring(0, pos); name = name.substring(pos + 1); if (aliasMap.get(alias) == null) { detachedCriteria.createAlias(alias, alias); aliasNum++; aliasMap.put(alias, getNewAliasName(alias, aliasNum)); } detachedCriteria.add(Restrictions.sqlRestriction(aliasMap.get(alias) + name + "=? ", DateUtils.toDate(value), StandardBasicTypes.DATE)); } else if ("xs".equals(op)) { // . String // ? string int pos = name.lastIndexOf("."); String alias = name.substring(0, pos); name = name.substring(pos + 1); if (aliasMap.get(alias) == null) { detachedCriteria.createAlias(alias, alias); aliasNum++; aliasMap.put(alias, getNewAliasName(alias, aliasNum)); } detachedCriteria .add(Restrictions.sqlRestriction(aliasMap.get(alias) + name + "='" + value + "' ")); } else if ("xe".equals(op)) { // . if (!value.equals("") && Integer.parseInt(value) > 0) { int pos = name.lastIndexOf("."); String alias = name.substring(0, pos); name = name.substring(pos + 1); if (aliasMap.get(alias) == null) { detachedCriteria.createAlias(alias, alias); aliasNum++; aliasMap.put(alias, getNewAliasName(alias, aliasNum)); } detachedCriteria .add(Restrictions.sqlRestriction(aliasMap.get(alias) + name + "=" + value)); } } else if ("ixe".equals(op)) { // . if (!value.equals("") && Integer.parseInt(value) >= 0) { int pos = name.lastIndexOf("."); String alias = name.substring(0, pos); name = name.substring(pos + 1); if (aliasMap.get(alias) == null) { detachedCriteria.createAlias(alias, alias); aliasNum++; aliasMap.put(alias, getNewAliasName(alias, aliasNum)); } detachedCriteria .add(Restrictions.sqlRestriction(aliasMap.get(alias) + name + "=" + value)); } } else if ("xel".equals(op)) { // . if (!value.equals("") && Long.parseLong(value) != -1) { int pos = name.lastIndexOf("."); String alias = name.substring(0, pos); name = name.substring(pos + 1); if (aliasMap.get(alias) == null) { detachedCriteria.createAlias(alias, alias); aliasNum++; aliasMap.put(alias, getNewAliasName(alias, aliasNum)); } detachedCriteria .add(Restrictions.sqlRestriction(aliasMap.get(alias) + name + "=" + value)); } } else if ("xne".equals(op)) { // . if (!value.equals("") && Integer.parseInt(value) != -1) { int pos = name.lastIndexOf("."); String alias = name.substring(0, pos); name = name.substring(pos + 1); if (aliasMap.get(alias) == null) { detachedCriteria.createAlias(alias, alias); aliasNum++; aliasMap.put(alias, getNewAliasName(alias, aliasNum)); } detachedCriteria .add(Restrictions.sqlRestriction(aliasMap.get(alias) + name + "<>" + value)); } } else if ("xi".equals(op)) { // . in () String int pos = name.lastIndexOf("."); String alias = name.substring(0, pos); name = name.substring(pos + 1); if (aliasMap.get(alias) == null) { detachedCriteria.createAlias(alias, alias); aliasNum++; aliasMap.put(alias, getNewAliasName(alias, aliasNum)); } // ? string detachedCriteria.add( Restrictions.sqlRestriction(aliasMap.get(alias) + name + " in (" + value + ") ")); } else if ("xl".equals(op)) { // like . String int pos = name.lastIndexOf("."); String alias = name.substring(0, pos); name = name.substring(pos + 1); if (aliasMap.get(alias) == null) { detachedCriteria.createAlias(alias, alias); aliasNum++; aliasMap.put(alias, getNewAliasName(alias, aliasNum)); } detachedCriteria.add(Restrictions .sqlRestriction(aliasMap.get(alias) + name + " like '%" + value + "%'")); } else if (op.startsWith("xdate")) { // Date String dateOp = "="; if ("xdatelt".equals(op)) { dateOp = "<"; } else if ("xdategt".equals(op)) { dateOp = ">"; } else if ("xdatele".equals(op)) { dateOp = "<="; } else if ("xdatege".equals(op)) { dateOp = ">="; } int pos = name.lastIndexOf("."); String alias = name.substring(0, pos); name = name.substring(pos + 1); if (aliasMap.get(alias) == null) { detachedCriteria.createAlias(alias, alias); aliasNum++; aliasMap.put(alias, getNewAliasName(alias, aliasNum)); } detachedCriteria.add(Restrictions.sqlRestriction(aliasMap.get(alias) + name + dateOp + "?", DateUtils.toDate(value), StandardBasicTypes.DATE)); } else if (op.startsWith("date")) { // Date String dateOp = "="; if ("datelt".equals(op)) { dateOp = "<"; } else if ("dategt".equals(op)) { dateOp = ">"; } else if ("datele".equals(op)) { dateOp = "<="; } else if ("datege".equals(op)) { dateOp = ">="; } detachedCriteria.add(Restrictions.sqlRestriction(name + dateOp + "?", DateUtils.toDate(value), StandardBasicTypes.DATE)); } /* * else if(op.equals("double")){ //Double String doubleOp * = "="; if("double".equals(op)){ } } */else if ("like".equals(op)) { // like detachedCriteria.add(Restrictions.like(name, "%" + value + "%")); } else if ("es".equals(op)) { // if(Integer.parseInt(value) != -1){ detachedCriteria .add(Restrictions.sqlRestriction(name + " = ? ", value, StandardBasicTypes.STRING)); // } } else if ("ex".equals(op)) { // =int if (Integer.parseInt(value) != -1) { detachedCriteria.add(Restrictions.eq(name, new Integer(value))); } } else if ("el".equals(op)) { // =long if (Long.parseLong(value) != -1) { detachedCriteria.add(Restrictions.eq(name, new Long(value))); } } else if ("ed".equals(op)) { // =double if (Double.parseDouble(value) != -1) { detachedCriteria.add(Restrictions.eq(name, new Double(value))); } } else if ("nei".equals(op)) { // <>int if (Integer.parseInt(value) != -1) { detachedCriteria.add(Restrictions.ne(name, new Integer(value))); } } else if ("nel".equals(op)) { // <>long if (Long.parseLong(value) != -1) { detachedCriteria.add(Restrictions.ne(name, new Long(value))); } } else if ("in".equals(op)) { // in () if (!"".trim().equals(value)) { String maintAlias = detachedCriteria.getAlias(); detachedCriteria.add( Restrictions.sqlRestriction(maintAlias + "_." + name + " in (" + value + ") ")); // detachedCriteria.add(Restrictions // .sqlRestriction(name + " in (" + value // + ") ")); } } else if ("nin".equals(op)) { // not in () if (!"".trim().equals(value)) { String maintAlias = detachedCriteria.getAlias(); detachedCriteria.add(Restrictions .sqlRestriction(maintAlias + "_." + name + " not in (" + value + ") ")); // detachedCriteria.add(Restrictions // .sqlRestriction(name + " not in (" + value // + ") ")); } } else { detachedCriteria.add(Restrictions.eq(name, value)); } } else if (key.startsWith(ORDER_PREFIX)) { // ????? //order__asc(desc) ? hidden String name = key.substring(ORDER_PREFIX.length()); int pos = name.lastIndexOf("."); if (pos != -1) { String alias = name.substring(0, pos); if (aliasMap.get(alias) == null) { detachedCriteria.createAlias(alias, alias); aliasNum++; aliasMap.put(alias, getNewAliasName(alias, aliasNum)); } } if (value.trim().equalsIgnoreCase("asc")) { detachedCriteria.addOrder(Order.asc(name)); } else { detachedCriteria.addOrder(Order.desc(name)); } } } map.putAll(aliasMap); } return detachedCriteria; }
From source file:com.ihsolution.hqipo.dao.utils.QueryHelper.java
License:Open Source License
/** * Main conversion method//from ww w.ja v a2s .c o m * @param fieldName * @param fieldVal * @param oper (=, equal, IN ...) * @param j (AND OR) * @return */ public QueryHelper addFieldAndVal(String fieldName, Object fieldVal, String oper, Junction j) { boolean isValString = fieldVal instanceof String; String str = ""; if (oper == null || "".equals(oper)) { oper = "equal"; } if (isValString) str = ((String) fieldVal).trim(); if ("equal".equals(oper)) { if (isValString) { j.add(Restrictions.eq(fieldName, str).ignoreCase()); } else j.add(Restrictions.eq(fieldName, fieldVal)); } else if ("notEqual".equals(oper)) { if (isValString) { j.add(Restrictions.ne(fieldName, str).ignoreCase()); } else j.add(Restrictions.ne(fieldName, fieldVal)); } else if ("null".equals(oper)) { j.add(Restrictions.isNull(fieldName)); } else if ("notNull".equals(oper)) { j.add(Restrictions.isNotNull(fieldName)); } else if ("notExists".equals(oper)) { j.add(Restrictions.sqlRestriction(fieldVal.toString())); } else if ("Exists".equals(oper)) { j.add(Restrictions.sqlRestriction(fieldVal.toString())); } else if (isValString) { MatchMode mm = getMatchMode(oper); if (mm != null) j.add(Restrictions.ilike(fieldName, str, mm)); } else if ("le".equals(oper)) j.add(Restrictions.le(fieldName, fieldVal)); else if ("ge".equals(oper)) j.add(Restrictions.ge(fieldName, fieldVal)); else if ("gtProperty".equals(oper)) { String[] spl = ((String) fieldVal).split(";"); if (spl.length == 2) j.add(Restrictions.gtProperty(spl[0], spl[1])); else j.add(Restrictions.gt(fieldName, fieldVal)); } else if ("in".equals(oper)) { if (fieldVal instanceof Collection) j.add(Restrictions.in(fieldName, (Collection) fieldVal)); else if (fieldVal instanceof Object[]) j.add(Restrictions.in(fieldName, (Object[]) fieldVal)); else throw new IllegalArgumentException( "QueryHelper.IN illegal argument type. Should be Collection or Object[]"); } else if ("notIn".equals(oper)) { if (fieldVal instanceof Collection) j.add(Restrictions.not(Restrictions.in(fieldName, (Collection) fieldVal))); else if (fieldVal instanceof Object[]) j.add(Restrictions.not(Restrictions.in(fieldName, (Object[]) fieldVal))); else throw new IllegalArgumentException( "QueryHelper.NOTIN illegal argument type. Should be Collection or Object[]"); } else if ("between".equals(oper)) { Collection objs = (Collection) fieldVal; Iterator it2 = objs.iterator(); Object obj1 = it2.next(); Object obj2 = it2.next(); j.add(Restrictions.between(fieldName, obj1 instanceof String ? obj1.toString().toLowerCase() : obj1, obj2 instanceof String ? obj2.toString().toLowerCase() : obj2)); } else j.add(Restrictions.eq(fieldName, fieldVal)); return this; }
From source file:com.kodemore.hibernate.criteria.KmAbstractCriteria.java
License:Open Source License
public void addTrue() { _add(Restrictions.sqlRestriction("true")); }
From source file:com.kodemore.hibernate.criteria.KmAbstractCriteria.java
License:Open Source License
public void addFalse() { _add(Restrictions.sqlRestriction("false")); }