Criteria queries are queries that can be built by instantiating Java objects, rather than specifying a string syntax. The advantage of this is that you can avoid query syntax errors; as the correctness of your queries will be guaranteed by the compiler, you can then detect syntax errors early.
The criteria query API may appear complex at first sight, but later you will get used to its syntax and use it without any hassle. Now, let's start examining a simple example to create a query equivalent to SELECT x FROM Movie x
using the criteria API:
CriteriaBuilder cb = entityManager.getCriteriaBuilder(); //01 CriteriaQuery<Movie> q = cb.createQuery(Movie.class); //02 Root<Movie> root = q.from(Movie.class); //03 q.select(root); //04 List<Movie> movies = entityManager.createQuery(q).getResultList(); //05
Let's look though the previous example:
- In line 01, we have instantiated a criteria builder object; the criteria builder, as the name suggests, is an object that we...