Refine search
/** * Get a component attribute of this property. * * @param propertyName The sub property name * * @return The property */ public Property getProperty(String propertyName) { return forName( getPropertyName() + '.' + propertyName ); }
/** * Factory for Property instances. * * @param propertyName The name of the property. * * @return The Property instance */ public static Property forName(String propertyName) { return new Property( propertyName ); }
crit.add(Restrictions.or(Restrictions.like("name", partialName, MatchMode.START), Restrictions.like("name", " " + partialName, MatchMode.ANYWHERE))); subquery.setProjection(Projections.property("ff.form.formId")); subquery.add(Restrictions.in("ff.formFieldId", anyFormFieldIds)); crit.add(Subqueries.propertyIn("f.formId", subquery)); subquery.setProjection(Projections.count("ff.formFieldId")). add(Property.forName("ff.form.formId").eqProperty("f.formId")). add(Restrictions.in("ff.formFieldId", allFormFieldIds)); crit.add(Subqueries.eq((long) containingAllFormFields.size(), subquery));
@Test public void testSubqueryWithRestrictionsOnComponentTypes() { doInHibernate( this::sessionFactory, session -> { session.enableFilter( "statusFilter" ).setParameter( "status", "active" ); final Criteria query = session.createCriteria( Student.class ); query.add( Restrictions.eq( "id", STUDENT_ID ) ); final DetachedCriteria subSelect = DetachedCriteria.forClass( Student.class ); subSelect.setProjection( Projections.max( "age" ) ); subSelect.add( Restrictions.eq( "id", STUDENT_ID ) ); query.add( Property.forName( "age" ).eq( subSelect ) ); final List list = query.list(); assertThat( list.size(), is( 1 ) ); }); }
public List<String> getPartnersUniprotIdsByProteinAc( String proteinAc ) { return partnersByAcCriteria( proteinAc ) .createAlias( "prot.xrefs", "xref" ) .createAlias( "xref.cvXrefQualifier", "qual" ) .createAlias( "xref.cvDatabase", "database" ) .createCriteria( "qual.xrefs", "qualXref" ) .createCriteria( "database.xrefs", "dbXref" ) .add( Restrictions.eq( "qualXref.primaryId", CvXrefQualifier.IDENTITY_MI_REF ) ) .add( Restrictions.eq( "dbXref.primaryId", CvDatabase.UNIPROT_MI_REF ) ) .setProjection( Projections.distinct( Property.forName( "xref.primaryId" ) ) ).list(); }
@Override public Criterion toHibernateCriterion(AbstractHibernateQuery hibernateQuery, Query.Equals criterion, String alias) { String propertyName = getPropertyName(criterion, alias); Object value = criterion.getValue(); if(value instanceof DetachedCriteria) { return Property.forName(propertyName).eq((DetachedCriteria) value); } return Restrictions.eq(propertyName, value); } });
protected Criteria getCriteria(Session s) { // should use PassThroughTransformer by default return s.createCriteria( Enrolment.class ) .setProjection( Projections.projectionList() .add( Property.forName( "student" ) ) .add( Property.forName( "semester" ) ) .add( Property.forName( "year" ) ) .add( Property.forName( "course" ) ) ) .add( Restrictions.eq( "studentNumber", Long.valueOf( shermanEnrolmentExpected.getStudentNumber() ) ) ); } };
/** * Adds attribute value criteria to the given criteria query * * @param criteria the criteria * @param serializedAttributeValues the serialized attribute values * @param <AT> the attribute type */ public static <AT extends AttributeType> void addAttributeCriteria(Criteria criteria, Map<AT, String> serializedAttributeValues) { Conjunction conjunction = Restrictions.conjunction(); int a = 0; for (Map.Entry<AT, String> entry : serializedAttributeValues.entrySet()) { String alias = "attributes" + (a++); DetachedCriteria detachedCriteria = DetachedCriteria.forClass(Location.class).setProjection(Projections.id()); detachedCriteria.createAlias("attributes", alias); detachedCriteria.add(Restrictions.eq(alias + ".attributeType", entry.getKey())); detachedCriteria.add(Restrictions.eq(alias + ".valueReference", entry.getValue())); detachedCriteria.add(Restrictions.eq(alias + ".voided", false)); conjunction.add(Property.forName("id").in(detachedCriteria)); } criteria.add(conjunction); }
@Test public void testSubquery() { doInHibernate( this::sessionFactory, session -> { final Criteria query = session.createCriteria( Student.class ); query.add( Restrictions.eq( "name", "dre" ) ); final DetachedCriteria inner = DetachedCriteria.forClass( Student.class ); inner.setProjection( Projections.min( "age" ) ); query.add( Property.forName( "age" ).eq( inner ) ); query.add( Restrictions.eq( "name", "dre" ) ); final List list = query.list(); assertThat( list.size(), is( 1 ) ); }); doInHibernate( this::sessionFactory, session -> { session.enableFilter( "statusFilter" ).setParameter( "status", "deleted" ); final Criteria query = session.createCriteria( Student.class ); query.add( Restrictions.eq( "name", "dre" ) ); final DetachedCriteria inner = DetachedCriteria.forClass( Student.class ); inner.setProjection( Projections.min( "age" ) ); query.add( Property.forName( "age" ).eq( inner ) ); query.add( Restrictions.eq( "name", "dre" ) ); final List list = query.list(); assertThat( list.size(), is( 0 ) ); }); }
dcollCriteria.setProjection(Projections.property("coll.id")); dcollCriteria.add(Restrictions.eqProperty("coll.id", "item.owningCollection")); dcollCriteria.add(Restrictions.in("coll.id", collectionUuids)); criteria.add(Subqueries.exists(dcollCriteria)); subcriteria.add(Property.forName("mv.dSpaceObject").eqProperty("item.id")); subcriteria.setProjection(Projections.property("mv.dSpaceObject")); subcriteria.add(Restrictions.in("metadataField", listFieldList.get(i))); subcriteria.add(Property.forName("mv.value").eq(query_val.get(i))); sb.append(query_val.get(i)); } else if (op == OP.like || op == OP.not_like){ subcriteria.add(Property.forName("mv.value").like(query_val.get(i))); sb.append(query_val.get(i)); } else if (op == OP.contains || op == OP.doesnt_contain){ subcriteria.add(Property.forName("mv.value").like("%"+query_val.get(i)+"%")); sb.append(query_val.get(i)); } else if (op == OP.matches || op == OP.doesnt_match) {
/** * Creates an equality restriction. * * @param value The value to check against * * @return The equality restriction. * * @see Restrictions#eq(String, Object) */ public SimpleExpression eq(Object value) { return Restrictions.eq( getPropertyName(), value ); }
protected Criteria getCriteria(Session s) { // should use PassThroughTransformer by default return s.createCriteria( Enrolment.class, "e" ) .setProjection( Projections.projectionList() .add( Property.forName( "e.student" ).as( "st" ) ) .add( Property.forName( "e.semester" ).as("sem" ) ) .add( Property.forName( "e.year" ).as( "yr" ) ) .add( Property.forName( "e.course" ).as( "c" ) ) ) .addOrder( Order.asc( "e.studentNumber") ); } };
dcollCriteria.setProjection(Projections.property("coll.id")); dcollCriteria.add(Restrictions.eqProperty("coll.id", "item.owningCollection")); dcollCriteria.add(Restrictions.in("coll.id", collectionUuids)); criteria.add(Subqueries.exists(dcollCriteria)); subcriteria.add(Property.forName("mv.dSpaceObject").eqProperty("item.id")); subcriteria.setProjection(Projections.property("mv.dSpaceObject")); subcriteria.add(Restrictions.in("metadataField", listFieldList.get(i)));
protected Criteria getCriteria(Session s) { // should use PassThroughTransformer by default return s.createCriteria( Enrolment.class, "e" ) .setProjection( Projections.projectionList() .add( Property.forName( "e.student" ) ) .add( Property.forName( "e.semester" ) ) .add( Property.forName( "e.year" ) ) .add( Property.forName( "e.course" ) ) ) .addOrder( Order.asc( "e.studentNumber") ); } };
/** * Creates an IN restriction for this property based on the given list of literals * * @param values The literal values * * @return The IN restriction * * @see Restrictions#in(String, Object[]) */ public Criterion in(Object... values) { return Restrictions.in( getPropertyName(), values ); }
private Criteria getBasicMapCriteria() { DetachedCriteria detachedCriteria = DetachedCriteria.forClass(StatisticsCounter.class) .createAlias("scanRepeatFindingMap", "mapAlias") .add(Restrictions.isNotNull("scanRepeatFindingMap")) .setProjection(property("mapAlias.id")); return sessionFactory.getCurrentSession() .createCriteria(ScanRepeatFindingMap.class) .add(Property.forName("id").notIn(detachedCriteria)); }
protected Criteria getCriteria(Session s) throws Exception { return s.createCriteria( Student.class, "s" ) .setProjection( Projections.projectionList() .add( Projections.sqlProjection( "555 as studentNumber", new String[]{ "studentNumber" }, new Type[] { StandardBasicTypes.LONG } ) ) .add( Property.forName( "s.name" ).as( "name" ) ) ) .addOrder( Order.asc( "s.studentNumber" ) ) .setResultTransformer( new AliasToBeanConstructorResultTransformer( getConstructor() ) ); } private Constructor getConstructor() throws NoSuchMethodException {
/** * Creates a NULL restriction * * @return The restriction * * @see Restrictions#isNull(String) */ public Criterion isNull() { return Restrictions.isNull( getPropertyName() ); }
/** * Creates a LIKE restriction for this property * * @param value The value to like compare with * * @return The LIKE restriction * * @see Restrictions#like(String, Object) */ public SimpleExpression like(Object value) { return Restrictions.like( getPropertyName(), value ); }
/** * Create a greater-than-or-equal-to restriction based on this property * * @param value The value to check against * * @return The greater-than-or-equal-to restriction * * @see Restrictions#ge(String, Object) */ public SimpleExpression ge(Object value) { return Restrictions.ge( getPropertyName(), value ); }