How to Fetch Single record using Criteria in java

495 Views Asked by At
Table User{    
 String id;
 String name;
 Date created_at;
 Set<Subscription> key;
}

Table Subscription  {
  String key;
  Date expiry;
}

I have to find user using list of subscription key but since one key is having multiple user. I have to take only the first user which is created first.

My code :

CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
                            CriteriaQuery<User> criteriaQuery = criteriaBuilder.createQuery(User.class);
                            Root<User> userRoot = criteriaQuery.from(User.class);
                            SetJoin<User, Subscription> subscriptionJoin= userRoot.join(USer_.key);
                            
                            criteriaQuery.where(criteriaBuilder.and(subscriptionJoin.get(.key).in(keys)));
                            criteriaQuery.orderBy(criteriaBuilder.desc(userRoot_.get(user_.CREATED_AT)));
0

There are 0 best solutions below