Prototype of Vaadin/Querydsl JPA integration
vaadin-querydsl-prototype provides extensions to the Vaadin JPAContainer methods to support Querydsl types.
QuerydslJPAContainerFactory and QuerydslJPAContainer can be used as replacements for JPAContainerFactory and JPAContainer.
creation
QuerydslJPAContainer<Person> container = QuerydslJPAContainerFactory.make(Person.class, entityManager);
filtering
// container.addContainerFilter(new Equal("firstName", "Hello"));
// container.addContainerFilter(new Equal("lastName", "World"));
QPerson person = QPerson.person; // Querydsl generated type
container.addContainerFilter(person.firstName.eq("Hello"));
container.addContainerFilter(person.lastName.eq("World"));
filtering and sorting
// container.addContainerFilter(new Equal("firstName", "Hello"));
// container.sort(new Object[] { "firstName" }, new boolean[] { true });
container.addContainerFilter(person.firstName.eq("Hello"));
container.sort(person.firstName.asc());
complex filter
// container.addContainerFilter(new Or(new Equal("firstName", "Hello"),
new Equal("lastName", "World")));
container.addContainerFilter(person.firstName.eq("Hello")
.or(person.lastName.eq("World")));
The commented out code shows the original way to add filters and sorting.
The supported Querydsl operations are and, or, not, like, eq, ne, isNull, startsWith,
startsWithIc, contains, between, lt, gt, loe and goe.
This code is just a prototype of a possible integration of Vaadin and Querydsl for JPA querying. It should not be used in production code.