Pojo: UserDetails
EntityManager: entityManager
1. Ceate Criteria
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
CriteriaBuilder builder = entityManager.getCriteriaBuilder(); CriteriaQuery<UserDetails> criteria = builder.createQuery(UserDetails.class);
2. Compose SQL
1) table
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
Root<UserDetails> userDetailsTable = criteria.from(UserDetails.class);
2) Condition
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
Path<UserDetails> uId = userDetailsTable.get("userId"); Predicate condition = builder.equal(uId, userId); criteria.where(condition);
3. result
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
return entityManager.createQuery(criteria).getSingleResult();