List of usage examples for javax.persistence.criteria Join get
<Y> Path<Y> get(SingularAttribute<? super X, Y> attribute);
From source file:com.netflix.genie.core.jpa.specifications.JpaClusterSpecs.java
/** * Get all the clusters given the specified parameters. * * @param clusterCriteria The cluster criteria * @param commandCriteria The command Criteria * @return The specification/*w w w . j a va 2s. c o m*/ */ public static Specification<ClusterEntity> findByClusterAndCommandCriteria( final ClusterCriteria clusterCriteria, final Set<String> commandCriteria) { return (final Root<ClusterEntity> root, final CriteriaQuery<?> cq, final CriteriaBuilder cb) -> { final List<Predicate> predicates = new ArrayList<>(); final Join<ClusterEntity, CommandEntity> commands = root.join(ClusterEntity_.commands); cq.distinct(true); predicates.add(cb.equal(root.get(ClusterEntity_.status), ClusterStatus.UP)); if (clusterCriteria != null && clusterCriteria.getTags() != null && !clusterCriteria.getTags().isEmpty()) { predicates.add(cb.like(root.get(ClusterEntity_.tags), JpaSpecificationUtils.getTagLikeString(clusterCriteria.getTags()))); } predicates.add(cb.equal(commands.get(CommandEntity_.status), CommandStatus.ACTIVE)); if (commandCriteria != null && !commandCriteria.isEmpty()) { predicates.add(cb.like(commands.get(CommandEntity_.tags), JpaSpecificationUtils.getTagLikeString(commandCriteria))); } return cb.and(predicates.toArray(new Predicate[predicates.size()])); }; }
From source file:net.przemkovv.sphinx.dao.impl.DefaultPermissionDAO.java
@Override public List<Permission> getPermissionsForUser(User user) { CriteriaBuilder cb = em.getCriteriaBuilder(); CriteriaQuery<Permission> cq = cb.createQuery(Permission.class); Root<Permission> permissions = cq.from(Permission.class); Join<Permission, Role> roles = permissions.join(Permission_.roles); Join<Role, User> users = roles.join(Role_.users); cq.where(cb.equal(users.get(User_.email), user.getEmail())); return em.createQuery(cq).getResultList(); }
From source file:core.commonapp.server.dao.security.SecurityGroupDaoHibernateImpl.java
@Override @Transactional/*from w w w.j a v a 2 s . c o m*/ public Set<SecurityGroup> findAllByUserLogin(UserLogin userLogin) { CriteriaBuilder builder = getEntityManager().getCriteriaBuilder(); CriteriaQuery<SecurityGroup> query = builder.createQuery(SecurityGroup.class); Root<SecurityGroup> root = query.from(SecurityGroup.class); Join<SecurityGroup, UserLoginSecurityGroup> join = root.join("userLoginSecurityGroup"); builder.equal(join.get("userLogin.userLoginId"), userLogin.getUserLoginId()); builder.isNull(join.get("thruDate")); // criteria.setFetchMode("userLoginSecurityGroups", FetchMode.SELECT); // criteria.setFetchMode("permissionSecurityGroups", FetchMode.SELECT); Set<SecurityGroup> securityGroups = new HashSet<SecurityGroup>( getEntityManager().createQuery(query).getResultList()); for (SecurityGroup securityGroup : securityGroups) { securityGroup.getPermissionSecurityGroups().size(); securityGroup.getUserLoginSecurityGroups().size(); } return securityGroups; }
From source file:com.expressui.sample.view.role.RoleQuery.java
@Override public List<Predicate> buildCriteria(CriteriaBuilder builder, Root<Role> rootEntity) { List<Predicate> criteria = new ArrayList<Predicate>(); if (!isEmpty(name)) { ParameterExpression<String> p = builder.parameter(String.class, "name"); criteria.add(builder.like(builder.upper(rootEntity.<String>get("name")), p)); }/* w w w . ja v a 2 s . c o m*/ if (!isEmpty(doesNotBelongToUser)) { ParameterExpression<User> p = builder.parameter(User.class, "doesNotBelongToUser"); Join join = rootEntity.join("userRoles", JoinType.LEFT); criteria.add(builder.or(builder.notEqual(join.get("user"), p), builder.isNull(join.get("user")))); } return criteria; }
From source file:com.expressui.sample.view.user.UserQuery.java
@Override public List<Predicate> buildCriteria(CriteriaBuilder builder, Root<User> rootEntity) { List<Predicate> criteria = new ArrayList<Predicate>(); if (!isEmpty(loginName)) { ParameterExpression<String> p = builder.parameter(String.class, "loginName"); criteria.add(builder.like(builder.upper(rootEntity.<String>get("loginName")), p)); }/*from w w w . j a v a 2 s.c om*/ if (!isEmpty(doesNotBelongToRole)) { ParameterExpression<Role> p = builder.parameter(Role.class, "doesNotBelongToRole"); Join join = rootEntity.join("userRoles", JoinType.LEFT); criteria.add(builder.or(builder.notEqual(join.get("role"), p), builder.isNull(join.get("role")))); } return criteria; }
From source file:com.excilys.ebi.sample.jpa.query.benchmark.repository.impl.JPACriteriaRepository.java
@Override public List<Song> getSongsBySameArtistOrderBySongTitle(final Integer songId) { // select s.artist.songs from Song s where s.id=? CriteriaBuilder builder = em.getCriteriaBuilder(); CriteriaQuery<Song> query = builder.createQuery(Song.class); Root<Song> song1 = query.from(Song.class); Join<Artist, Song> artistSongs = song1.join(Song_.artist).join(Artist_.songs); query.select(artistSongs).where(builder.equal(song1.get(Song_.id), songId)) .orderBy(builder.asc(artistSongs.get(Song_.title))); return em.createQuery(query).getResultList(); }
From source file:core.commonapp.server.dao.party.PersonDaoHibernateImpl.java
@Override @Transactional//from w w w . ja v a 2s . c o m public List<Person> findAllContactPeople(Integer partyId) { CriteriaBuilder builder = getEntityManager().getCriteriaBuilder(); CriteriaQuery<Person> query = builder.createQuery(Person.class); Root<Person> contactPerson = query.from(Person.class); Join<Person, PartyRelationship> partyToRelationships = contactPerson.join("partyToRelationships"); query.where(builder.equal(partyToRelationships.get("partyFrom.partyId"), partyId), builder.isNull(partyToRelationships.get("thruDate"))); List<Person> people = getEntityManager().createQuery(query).getResultList(); PartyDaoHibernateImpl.lazyLoad((Party) people, true, true, false, false); return people; }
From source file:org.openlmis.migration.tool.openlmis.referencedata.repository.custom.impl.OlmisFacilityTypeApprovedProductRepositoryImpl.java
@Override public Collection<FacilityTypeApprovedProduct> searchProducts(UUID facilityId, UUID programId, boolean fullSupply) { checkNotNull(facilityId);//w w w . jav a 2 s .co m CriteriaBuilder builder = entityManager.getCriteriaBuilder(); CriteriaQuery<FacilityTypeApprovedProduct> query = builder.createQuery(FacilityTypeApprovedProduct.class); Root<FacilityTypeApprovedProduct> ftap = query.from(FacilityTypeApprovedProduct.class); Root<Facility> facility = query.from(Facility.class); Join<Facility, FacilityType> fft = facility.join("type"); Join<FacilityTypeApprovedProduct, FacilityType> ft = ftap.join("facilityType"); Join<FacilityTypeApprovedProduct, ProgramOrderable> pp = ftap.join("programOrderable"); Join<ProgramOrderable, Program> program = pp.join("program"); Predicate conjunction = builder.conjunction(); if (programId != null) { conjunction = builder.and(conjunction, builder.equal(program.get("id"), programId)); } conjunction = builder.and(conjunction, builder.equal(fft.get("id"), ft.get("id"))); conjunction = builder.and(conjunction, builder.equal(facility.get("id"), facilityId)); conjunction = builder.and(conjunction, builder.equal(pp.get("fullSupply"), fullSupply)); conjunction = builder.and(conjunction, builder.isTrue(pp.get("active"))); query.select(ftap); query.where(conjunction); Join<ProgramOrderable, OrderableDisplayCategory> category = pp.join("orderableDisplayCategory"); Join<ProgramOrderable, Orderable> orderable = pp.join("product"); query.orderBy(builder.asc(category.get("orderedDisplayValue").get("displayOrder")), builder.asc(category.get("orderedDisplayValue").get("displayName")), builder.asc(orderable.get("productCode"))); return entityManager.createQuery(query).getResultList(); }
From source file:ch.puzzle.itc.mobiliar.business.resourcegroup.control.ResourceGroupRepository.java
/** * * @param name// w w w . jav a2 s. co m * @param resourceTypeId * @return */ public ResourceGroupEntity loadUniqueGroupByNameAndType(String name, Integer resourceTypeId) { ResourceGroupEntity result = null; try { CriteriaBuilder cb = entityManager.getCriteriaBuilder(); CriteriaQuery<ResourceGroupEntity> q = cb.createQuery(ResourceGroupEntity.class); Root<ResourceGroupEntity> r = q.from(ResourceGroupEntity.class); r.fetch("resources"); Join<ResourceGroupEntity, ResourceEntity> resources = r.join("resources"); Predicate typePred = cb.equal(resources.get("resourceType").get("id"), resourceTypeId); Predicate resNamePred = cb.equal(resources.get("name"), name); q.where(cb.and(typePred, resNamePred)); q.distinct(true); result = entityManager.createQuery(q).getSingleResult(); } catch (NoResultException e) { // do nothing } return result; }
From source file:org.verinice.persistence.VeriniceAccountDaoImpl.java
private TypedQuery<Entity> buildQueryForProperties(String loginName) { CriteriaBuilder builder = getCriteriaBuilder(); CriteriaQuery<Entity> query = builder.createQuery(Entity.class); Root<Entity> entity = query.from(Entity.class); Join<PropertyList, Entity> propertyListJoin = entity.join("propertyLists"); Join<PropertyList, Property> propertiesJoin = propertyListJoin.join("properties"); List<Predicate> conditions = new ArrayList<>(); Path<String> propertytypePath = propertiesJoin.get("propertytype"); conditions.add(builder.like(propertytypePath, "configuration_benutzername")); Path<String> propertyvaluePath = propertiesJoin.get("propertyvalue"); conditions.add(builder.like(propertyvaluePath, loginName)); query.where(conditions.toArray(new Predicate[conditions.size()])); return entityManager.createQuery(query); }