public static void orderBy(JPACommonQuery<?> query, EntityPath<?> entity, List<String> order) { PathBuilder<?> builder = new PathBuilder(entity.getType(), entity.getMetadata()); Map<String, PathBuilder<?>> joins = Maps.newHashMap(); for (String entry : order) { String[] tokens = DOT.split(entry); if (tokens.length > 1) { String[] parent = new String[tokens.length - 1]; System.arraycopy(tokens, 0, parent, 0, tokens.length - 1); PathBuilder<?> parentAlias = join(query, builder, joins, StringUtils.join(parent, ".")); query.orderBy(parentAlias.getString(tokens[tokens.length - 1]).asc()); } else { query.orderBy(builder.getString(tokens[0]).asc()); } } }
@Test public void EntityQueries() { QCat catEntity = QCat.cat; List<Cat> cats = query().from(cat).orderBy(cat.name.asc()).list(catEntity); assertEquals(6, cats.size()); for (Cat c : cats) { System.out.println(c.getName()); } }
@Test public void OrderBy_Embeddable_Collection() { QBookVersion bookVersion = QBookVersion.bookVersion; QBookMark bookMark = new QBookMark("bookVersion_definition_bookMarks"); mixin.from(bookVersion); mixin.orderBy(bookVersion.definition.bookMarks.any().comment.asc()); QueryMetadata md = mixin.getMetadata(); assertEquals(Arrays.asList(new JoinExpression(JoinType.DEFAULT, bookVersion)), md.getJoins()); assertEquals(Arrays.asList(new StringPath(bookVersion.definition.bookMarks, "comment").asc()), md.getOrderBy()); }
@Test public void Any_In_Order() { assertFalse(query().from(cat).orderBy(cat.kittens.any().name.asc()).list(cat).isEmpty()); }
@Test public void Limit() { List<String> names1 = Arrays.asList("Allen123","Bob123"); assertEquals(names1, query().from(cat).orderBy(cat.name.asc()).limit(2).list(cat.name)); }
@Test @Ignore public void EntityProjections() { List<Cat> cats = query().from(cat).orderBy(cat.name.asc()) .list(ConstructorExpression.create(Cat.class, cat.name, cat.id)); assertEquals(6, cats.size()); for (Cat c : cats) { System.out.println(c.getName()); } }
@Test public void Limit2() { assertEquals(Collections.singletonList("Allen123"), query().from(cat).orderBy(cat.name.asc()).limit(1).list(cat.name)); }
@Test public void Order_By() throws Exception { query.from(user); query.orderBy(user.getString("firstName").asc()); assertEquals("SELECT * WHERE { ?user ?_c2 ?_c3 . OPTIONAL { ?user ?_c4 ?user_firstName } } ORDER BY ?user_firstName"); }
@Test @NoEclipseLink public void List_Order_Get2() { QCat cat = QCat.cat; assertEquals(6, query().from(cat).orderBy(cat.mate.kittens.get(0).name.asc()).list(cat).size()); }
@Test @NoEclipseLink public void Map_Order_Get() { QShow show = QShow.show; assertEquals(1, query().from(show).orderBy(show.parent.acts.get("A").asc()).list(show).size()); }
@Test public void Limit_and_offset() { List<String> names3 = Arrays.asList("Felix123","Mary_123"); assertEquals(names3, query().from(cat).orderBy(cat.name.asc()).limit(2).offset(2).list(cat.name)); }
@Test @NoEclipseLink public void List_Order_Get() { QCat cat = QCat.cat; assertEquals(6, query().from(cat).orderBy(cat.kittens.get(0).name.asc()).list(cat).size()); }
@Test @NoOpenJPA @NoBatooJPA // FIXME public void Offset2() { List<String> names2 = Arrays.asList("Felix123", "Mary_123", "Ruth123", "Some"); assertEquals(names2, query().from(cat).orderBy(cat.name.asc()).offset(2).list(cat.name)); }
@Test @NoOpenJPA @NoBatooJPA // FIXME public void Offset1() { List<String> names2 = Arrays.asList("Bob123", "Felix123", "Mary_123", "Ruth123", "Some"); assertEquals(names2, query().from(cat).orderBy(cat.name.asc()).offset(1).list(cat.name)); }
@Test public void List_Results() { SearchResults<String> results = query().from(cat).limit(3).orderBy(cat.name.asc()) .listResults(cat.name); assertEquals(Arrays.asList("Beck","Bobby","Harold"), results.getResults()); assertEquals(6l, results.getTotal()); }
@Test public void DocoExamples99() throws Exception { query().from(cat).orderBy(cat.name.asc(), cat.weight.desc(), cat.birthdate.asc()).parse(); }
@Test public void Create() { QEntity entity = QEntity.entity; BeanListSource<Entity> source = new BeanListSourceBuilder(sessionFactory) .from(entity).where(entity.text.isNull()) .orderBy(entity.text.asc()) .list(entity); assertNotNull(source.getResult(0)); assertFalse(source.getResults(0, 5).isEmpty()); assertFalse(source.getResults(5, 10).isEmpty()); }
@Test public void OrderByFirstName() { BeanListSourceBuilder query = new BeanListSourceBuilder(sessionFactory); User user = Alias.alias(User.class); assertEquals( Arrays.asList("Anton", "Bernard", "Chris", "John", "Zoe"), query.from($(user)).orderBy($(user.getFirstName()).asc()).list($(user.getFirstName())).getResults(0, 5)); assertEquals( Arrays.asList("Bernard", "Chris", "John", "Zoe"), query.from($(user)).orderBy($(user.getFirstName()).asc()).list($(user.getFirstName())).getResults(1, 5)); }
@Test public void OrderByLastName() { BeanListSourceBuilder query = new BeanListSourceBuilder(sessionFactory); User user = Alias.alias(User.class); assertEquals( Arrays.asList("Ark", "Bruxner", "Rock", "Shaw", "Smith"), query.from($(user)).orderBy($(user.getLastName()).asc()).list($(user.getLastName())).getResults(0, 5)); assertEquals( Arrays.asList("Bruxner", "Rock", "Shaw", "Smith"), query.from($(user)).orderBy($(user.getLastName()).asc()).list($(user.getLastName())).getResults(1, 5)); } }
@Test public void NullsLast() { QCat cat = QCat.cat; JPQLSerializer serializer = new JPQLSerializer(HQLTemplates.DEFAULT); QueryMetadata md = new DefaultQueryMetadata(); md.addJoin(JoinType.DEFAULT, cat); md.addOrderBy(cat.name.asc().nullsLast()); serializer.serialize(md, false, null); assertEquals("select cat\n" + "from Cat cat\n" + "order by cat.name asc nulls last", serializer.toString()); }