List of usage examples for org.hibernate.criterion Restrictions ne
public static SimpleExpression ne(String propertyName, Object value)
From source file:com.evolveum.midpoint.repo.sql.QueryInterpreterTest.java
License:Apache License
@Test public void test310QueryNameAndOrg() throws Exception { Session session = open();//from w w w . j a va 2s . co m try { DetachedCriteria detached = DetachedCriteria.forClass(ROrgClosure.class, "cl"); detached.setProjection(Projections.distinct(Projections.property("cl.descendantOid"))); detached.add(Restrictions.eq("cl.ancestorOid", "1234")); detached.add(Restrictions.ne("cl.descendantOid", "1234")); Criteria main = session.createCriteria(RUser.class, "u"); String mainAlias = "u"; ProjectionList projections = Projections.projectionList(); projections.add(Projections.property("fullObject")); projections.add(Projections.property("stringsCount")); projections.add(Projections.property("longsCount")); projections.add(Projections.property("datesCount")); projections.add(Projections.property("referencesCount")); projections.add(Projections.property("polysCount")); main.setProjection(projections); Conjunction c = Restrictions.conjunction(); c.add(Restrictions.and(Restrictions.eq("u.name.orig", "cpt. Jack Sparrow"), Restrictions.eq("u.name.norm", "cpt jack sparrow"))); c.add(Subqueries.propertyIn(mainAlias + ".oid", detached)); main.add(c); main.addOrder(Order.asc("u.name.orig")); String expected = HibernateToSqlTranslator.toSql(main); EqualFilter eqFilter = EqualFilter.createEqual(ObjectType.F_NAME, ObjectType.class, prismContext, null, new PolyString("cpt. Jack Sparrow", "cpt jack sparrow")); OrgFilter orgFilter = OrgFilter.createOrg("12341234-1234-1234-1234-123412341234"); ObjectQuery query = ObjectQuery.createObjectQuery(AndFilter.createAnd(eqFilter, orgFilter)); query.setPaging(ObjectPaging.createPaging(null, null, ObjectType.F_NAME, OrderDirection.ASCENDING)); String real = getInterpretedQuery(session, UserType.class, query); LOGGER.info("exp. query>\n{}\nreal query>\n{}", new Object[] { expected, real }); AssertJUnit.assertEquals(expected, real); } finally { close(session); } }
From source file:com.example.barista.db.IngredientDAO.java
License:Apache License
/** * Unique exclusive name check.//from w w w . j a va2 s .co m * @param ingredient * the ingredient * @return true if name is unique, false otherwise */ public boolean isNameExclusivelyUnique(Ingredient ingredient) { return 0 == (long) criteria().add(Restrictions.eq("name", ingredient.getName())) .add(Restrictions.ne("id", ingredient.getId())).setProjection(Projections.rowCount()) .uniqueResult(); }
From source file:com.floreantpos.model.dao.TableBookingInfoDAO.java
License:Open Source License
public Collection<ShopTable> getBookedTables(Date startDate, Date endDate) { Session session = null;//from w w w .ja v a 2 s . com try { session = createNewSession(); Criteria criteria = session.createCriteria(getReferenceClass()); // criteria.add(Restrictions.ge(TableBookingInfo.PROP_TO_DATE, startDate)); criteria.add(Restrictions.ge(TableBookingInfo.PROP_TO_DATE, startDate)) .add(Restrictions.ne(TableBookingInfo.PROP_STATUS, TableBookingInfo.STATUS_CANCEL)) .add(Restrictions.ne(TableBookingInfo.PROP_STATUS, TableBookingInfo.STATUS_NO_APR)) .add(Restrictions.ne(TableBookingInfo.PROP_STATUS, TableBookingInfo.STATUS_CLOSE)); List<TableBookingInfo> list = criteria.list(); List<TableBookingInfo> bookings = new ArrayList<TableBookingInfo>(); for (TableBookingInfo tableBookingInfo : list) { if (DateUtil.between(tableBookingInfo.getFromDate(), tableBookingInfo.getToDate(), startDate) || DateUtil.between(tableBookingInfo.getFromDate(), tableBookingInfo.getToDate(), endDate)) { bookings.add(tableBookingInfo); } } Set<ShopTable> bookedTables = new HashSet<ShopTable>(); for (TableBookingInfo tableBookingInfo : bookings) { List<ShopTable> tables = tableBookingInfo.getTables(); if (tables != null) { bookedTables.addAll(tables); } } return bookedTables; } catch (Exception e) { PosLog.error(getClass(), e); } finally { if (session != null) { closeSession(session); } } return null; }
From source file:com.floreantpos.model.dao.TableBookingInfoDAO.java
License:Open Source License
public List<TableBookingInfo> getAllOpenBooking() { Session session = null;// w ww .ja v a 2 s .c o m try { session = createNewSession(); Criteria criteria = session.createCriteria(getReferenceClass()); criteria.add(Restrictions.ne(TableBookingInfo.PROP_STATUS, TableBookingInfo.STATUS_CLOSE)); List list = criteria.list(); return list; } catch (Exception e) { PosLog.error(getClass(), e); } finally { try { session.close(); } catch (Exception e2) { } } return null; }
From source file:com.floreantpos.model.dao.TableBookingInfoDAO.java
License:Open Source License
public List getAllBookingByDate(Date startDate, Date endDate) { Session session = null;// w ww. ja v a 2 s . com try { session = createNewSession(); Criteria criteria = session.createCriteria(TableBookingInfo.class); criteria.add(Restrictions.ge(TableBookingInfo.PROP_FROM_DATE, startDate)) .add(Restrictions.le(TableBookingInfo.PROP_FROM_DATE, endDate)) .add(Restrictions.ne(TableBookingInfo.PROP_STATUS, TableBookingInfo.STATUS_CLOSE)); List list = criteria.list(); return list; } catch (Exception e) { PosLog.error(getClass(), e); } finally { session.close(); } return null; }
From source file:com.gisgraphy.domain.repository.OpenStreetMapDao.java
License:Open Source License
@SuppressWarnings({ "unchecked", "rawtypes" }) public OpenStreetMap getNearestFrom(final Point point, final boolean onlyroad, final boolean filterEmptyName) { if (point == null) { return null; }/*ww w. j a v a 2 s . c o m*/ return (OpenStreetMap) this.getHibernateTemplate().execute(new HibernateCallback() { public Object doInHibernate(Session session) throws PersistenceException { Criteria criteria = session.createCriteria(OpenStreetMap.class); if (point != null) { //An intersect restriction will probably have better performances and use the index than a distance restriction Polygon polygonBox = GeolocHelper.createPolygonBox(point.getX(), point.getY(), DEFAULT_DISTANCE); criteria = criteria.add(new IntersectsRestriction(OpenStreetMap.SHAPE_COLUMN_NAME, polygonBox)); } if (onlyroad) { criteria = criteria.add(Restrictions.ne("streetType", StreetType.FOOTWAY)); } if (filterEmptyName) { criteria = criteria.add(Restrictions.isNotNull("name")); } String pointAsString = "ST_GeometryFromText('POINT(" + point.getX() + " " + point.getY() + ")'," + SRID.WGS84_SRID.getSRID() + ")"; String distanceCondition = new StringBuffer().append(DISTANCE_SPHERE_FUNCTION).append("(") .append(pointAsString).append(",").append(SpatialProjection.ST_CLOSEST_POINT).append("(") .append("this_.").append(OpenStreetMap.SHAPE_COLUMN_NAME).append(",").append(pointAsString) .append(")").append(")").toString(); criteria.addOrder(new NativeSQLOrder(distanceCondition)); criteria = criteria.setMaxResults(1); criteria.setCacheable(true); // List<Object[]> queryResults =testCriteria.list(); OpenStreetMap openStreetMap = (OpenStreetMap) criteria.uniqueResult(); return openStreetMap; } }); }
From source file:com.gisgraphy.hibernate.criterion.DistanceRestrictionTest.java
License:Open Source License
@SuppressWarnings("unchecked") @Test//from www .j a v a 2 s .c om public void testDistanceRestrictionPointDouble() { final City p1 = GisgraphyTestHelper.createCity("paris", 48.86667F, 2.3333F, 1L); City p2 = GisgraphyTestHelper.createCity("bordeaux", 44.83333F, -0.56667F, 3L); this.cityDao.save(p1); this.cityDao.save(p2); HibernateCallback hibernateCallback = new HibernateCallback() { public Object doInHibernate(Session session) throws PersistenceException { Criteria testCriteria = session.createCriteria(City.class); List<String> fieldList = new ArrayList<String>(); fieldList.add("name"); Projection projection = Projections.property("name").as("name"); testCriteria.setProjection(projection).add(Restrictions.ne("id", p1.getId())) .add(new DistanceRestriction(p1.getLocation(), 500000D)) .setResultTransformer(Transformers.aliasToBean(_CityDTO.class)); List<_CityDTO> results = testCriteria.list(); return results; } }; List<_CityDTO> cities = (List<_CityDTO>) testDao.testCallback(hibernateCallback); assertEquals("According to the distance restriction, it should have zero result", 0, cities.size()); hibernateCallback = new HibernateCallback() { public Object doInHibernate(Session session) throws PersistenceException { Criteria testCriteria = session.createCriteria(City.class); Projection projection = Projections.property("name").as("name"); testCriteria.setProjection(projection).add(new DistanceRestriction(p1.getLocation(), 600000D)) .add(Restrictions.ne("id", p1.getId())) .setResultTransformer(Transformers.aliasToBean(_CityDTO.class)); List<_CityDTO> results = testCriteria.list(); return results; } }; cities = (List<_CityDTO>) testDao.testCallback(hibernateCallback); assertEquals("According to the distance restriction, it should have one results", 1, cities.size()); assertEquals("bordeaux", cities.get(0).getName()); }
From source file:com.gisgraphy.hibernate.projection.SpatialProjectionTest.java
License:Open Source License
@SuppressWarnings("unchecked") @Test//from w w w .ja va 2 s. co m @Ignore public void testDistance_sphere() { final City p1 = GisgraphyTestHelper.createCity("paris", 48.86667F, 2.3333F, 1L); City p2 = GisgraphyTestHelper.createCity("bordeaux", 44.83333F, -0.56667F, 3L); this.cityDao.save(p1); this.cityDao.save(p2); HibernateCallback hibernateCallback = new HibernateCallback() { public Object doInHibernate(Session session) throws PersistenceException { Criteria testCriteria = session.createCriteria(City.class); ProjectionList projection = Projections.projectionList() .add(Projections.property("name").as("name")).add(SpatialProjection .distance_sphere(p1.getLocation(), GisFeature.LOCATION_COLUMN_NAME).as("distance")); // remove the from point testCriteria.add(Restrictions.ne("id", p1.getId())).setProjection(projection); testCriteria.setResultTransformer(Transformers.aliasToBean(_CityDTO.class)); List<_CityDTO> results = testCriteria.list(); return results; } }; List<_CityDTO> cities = (List<_CityDTO>) testDao.testCallback(hibernateCallback); assertEquals(1, cities.size()); assertEquals("bordeaux", cities.get(0).getName()); Double calculatedDist = p1.distanceTo(p2.getLocation()); Double retrieveDistance = cities.get(0).getDistance(); double percent = (Math.abs(calculatedDist - retrieveDistance) * 100) / Math.min(retrieveDistance, calculatedDist); assertTrue("There is more than one percent of error beetween the calculated distance (" + calculatedDist + ") and the retrieved one (" + retrieveDistance + ")", percent < 1); }
From source file:com.gisgraphy.hibernate.projection.SpatialProjectionTest.java
License:Open Source License
@SuppressWarnings("unchecked") @Test/*from ww w.j a v a2 s . c o m*/ @Ignore public void testDistance() { float x1 = -2f; float y1 = 2f; float x2 = 2f; float y2 = 2f; Point locationParis = GeolocHelper.createPoint(x1, y1); //locationParis.setSRID(-1); Point locationbordeaux = GeolocHelper.createPoint(x2, y2); //locationbordeaux.setSRID(-1); final City p1 = GisgraphyTestHelper.createCity("paris", 0F, 0F, 1L); p1.setLocation(locationParis); City p2 = GisgraphyTestHelper.createCity("bordeaux", 0F, 0F, 3L); p2.setLocation(locationbordeaux); this.cityDao.save(p1); this.cityDao.save(p2); HibernateCallback hibernateCallback = new HibernateCallback() { public Object doInHibernate(Session session) throws PersistenceException { Criteria testCriteria = session.createCriteria(City.class); ProjectionList projection = Projections.projectionList() .add(Projections.property("name").as("name")).add(SpatialProjection .distance(p1.getLocation(), GisFeature.LOCATION_COLUMN_NAME).as("distance")); // remove the from point testCriteria.add(Restrictions.ne("id", p1.getId())).setProjection(projection); testCriteria.setResultTransformer(Transformers.aliasToBean(_CityDTO.class)); List<_CityDTO> results = testCriteria.list(); return results; } }; List<_CityDTO> cities = (List<_CityDTO>) testDao.testCallback(hibernateCallback); assertEquals(1, cities.size()); assertEquals("bordeaux", cities.get(0).getName()); Double calculatedDist = Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2));//cartesian distance Double retrieveDistance = cities.get(0).getDistance(); double percent = (Math.abs(calculatedDist - retrieveDistance) * 100) / Math.min(retrieveDistance, calculatedDist); assertTrue("There is more than one percent of error beetween the calculated distance (" + calculatedDist + ") and the retrieved one (" + retrieveDistance + ")", percent < 1); }
From source file:com.glaf.base.utils.HibernateUtil.java
License:Apache License
/** * // w w w . ja v a2 s.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; }