182 CriteriaBuilder builder =
entityManager.getCriteriaBuilder();
183 CriteriaQuery<ResourceEntity> querybuilder = builder.createQuery(ResourceEntity.class);
184 Root<ResourceEntity> root = querybuilder.from(ResourceEntity.class);
185 querybuilder.select(root.get(
"id"));
186 List<Predicate> predicates =
new ArrayList();
188 if (resourceServerId != null) {
189 predicates.add(builder.equal(root.get(
"resourceServer").get(
"id"), resourceServerId));
192 attributes.forEach((name, value) -> {
193 if (
"id".equals(name)) {
194 predicates.add(root.get(name).in(value));
195 }
else if (
"scope".equals(name)) {
196 predicates.add(root.join(
"scopes").get(
"id").in(value));
197 }
else if (
"ownerManagedAccess".equals(name)) {
198 predicates.add(builder.equal(root.get(name), Boolean.valueOf(value[0])));
199 }
else if (
"uri".equals(name)) {
200 predicates.add(builder.lower(root.join(
"uris")).in(value[0].toLowerCase()));
201 }
else if (
"uri_not_null".equals(name)) {
204 Expression<Integer> urisSize = builder.size(root.get(
"uris"));
205 predicates.add(builder.notEqual(urisSize, 0));
206 }
else if (
"owner".equals(name)) {
207 predicates.add(root.get(name).in(value));
209 predicates.add(builder.like(builder.lower(root.get(name)),
"%" + value[0].toLowerCase() +
"%"));
213 querybuilder.where(predicates.toArray(
new Predicate[predicates.size()])).orderBy(builder.asc(root.get(
"name")));
217 if (firstResult != -1) {
218 query.setFirstResult(firstResult);
220 if (maxResult != -1) {
221 query.setMaxResults(maxResult);
224 List<String> result = query.getResultList();
225 List<Resource> list =
new LinkedList<>();
228 for (String
id : result) {
229 Resource resource = resourceStore.
findById(
id, resourceServerId);
231 if (resource != null) {
final EntityManager entityManager
Definition: JPAResourceStore.java:49
final AuthorizationProvider provider
Definition: JPAResourceStore.java:50
StoreFactory getStoreFactory()
Definition: AuthorizationProvider.java:109
Resource findById(String id, String resourceServerId)
ResourceStore getResourceStore()