@Override public <E> Path<Set<E>> createSetPath(Class<E> elementType, PathMetadata<?> metadata) { return new SetPath<E,EntityPathBase<E>>(elementType, (Class)EntityPathBase.class, metadata); }
@Override public Q any() { if (any == null) { any = newInstance(queryType, PathMetadataFactory.forCollectionAny(this)); } return any; }
@Test public void Constant_InElements_Set() { assertToString("?1 in elements(cat.kittensSet)", cat.kittensSet.contains(new Cat())); }
@Test public void IsEmpty_Relation() { query().from(cat).where(cat.kittensSet.isEmpty()).count(); }
@Test public void Set_is_not_Empty() throws Exception { query.from(user); query.where(user.getSet("buddies", User.class).isNotEmpty()); assertEquals("SELECT * WHERE { ?user ?_c2 ?_c3 ; ?_c4 ?user_buddies . FILTER(!(?user_buddies = ?_c6)) }"); }
@Test public void Set_is_Empty() throws Exception { query.from(user); query.where(user.getSet("buddies", User.class).isEmpty()); assertEquals("SELECT * WHERE { ?user ?_c2 ?_c3 ; ?_c4 ?user_buddies . FILTER(?user_buddies = ?_c6) }"); }
/** * Create a new Set typed path * * @param <A> * @param property * @param type * @return */ @SuppressWarnings("unchecked") protected <A, E extends SimpleExpression<? super A>> SetPath<A, E> createSet(String property, Class<? super A> type, Class<? super E> queryType, PathInits inits) { return add(new SetPath<A, E>(type, (Class) queryType, forProperty(property), inits)); }
@Test public void Contains() { Department dep = Alias.alias(Department.class); assertEquals(1l, session.from($(dep)).where($(dep.getEmployees()).contains(emp1)).count()); }
@Test public void test() { Company company = new Company(); Department department = new Department(); Employee employee = new Employee(); employee.department = department; department.company = company; session.save(company); session.save(department); session.save(employee); session.flush(); session.clear(); Company c = Alias.alias(Company.class); Department d = Alias.alias(Department.class); Employee e = Alias.alias(Employee.class); // count instances assertEquals(1l, session.from($(c)).count()); assertEquals(1l, session.from($(d)).count()); assertEquals(1l, session.from($(e)).count()); // direct assertEquals(1l, session.from($(d)).where($(d.getCompany()).eq(company)).count()); assertEquals(1l, session.from($(d)).where($(d.getCompany()).eq(company)).count()); assertEquals(1l, session.from($(e)).where($(e.getDepartment()).eq(department)).count()); // inverse assertEquals(1l, session.from($(c)).where($(c.getDepartment()).eq(department)).count()); assertEquals(1l, session.from($(c)).where($(c.getDepartments()).contains(department)).count()); assertEquals(1l, session.from($(d)).where($(d.getEmployees()).contains(employee)).count()); }