Criteria API is a facility given by Hibernate to the folks, who are not comfortable with SQL or doesn't like to write that ;). It has a several methods to prepare an SQL statement. Although, its very powerful and rich, but sometimes you have to go with SQL/HQL way when things are more sophisticated and deem out of reach of Criteria API.
Now Query, here its very ambiguous. Are you talking about HQL, or javax.persistence.Query?
Let's get him boys! We'll make him read this tiny ad!