Hibernate CriteriaBuilder with two parameters

Viewed 5463

I am using Java8 with Hibernate 5.2.1 and JPA2 with MySQL.

I have the following query that works perfectly:

    final EntityManagerFactory entityManagerFactory = entityManager.getEntityManagerFactory();
    final CriteriaBuilder criteriaBuilder = entityManagerFactory.getCriteriaBuilder();
    CriteriaQuery<Rating> criteria = criteriaBuilder.createQuery(Rating.class);
    Root<Rating> root = criteria.from(Rating.class);
    ParameterExpression<Job> paramJob = criteriaBuilder.parameter(Job.class);

    criteria.select(root).where(criteriaBuilder.equal(root.get("job"), paramJob));

As you can see, the query has one parameter paramJob. I would like to add a second parameter:

    ParameterExpression<Person> paramPerson = criteriaBuilder.parameter(Person.class);

Question

How do I modify the following line to accommodate the second parameter?

criteria.select(root).where(criteriaBuilder.equal(root.get("job"), paramJob));

Can I just add a second line:

criteria.select(root).where(criteriaBuilder.equal(root.get("person"), paramPerson));

Thanks

2 Answers
Related