ds.put(Book.newBookEntity("Joe Blow", "11111", "Bar Book"));
ds.put(Book.newBookEntity("Joe Blow", "12345", "Foo Book"));
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery cq = cb.createQuery();
Root<Book> candidate = cq.from(Book.class);
candidate.alias("b");
cq.select(candidate);
Path titleField = candidate.get("title");
cq.where(cb.equal(titleField, "Bar Book"));