use of javax.persistence.criteria.CriteriaQuery in project aries by apache.
the class AbstractSimpleTransactionTest method testRollback.
@Test
public void testRollback() {
Message message = new Message();
message.message = "Hello World!";
txControl.required(() -> {
em.persist(message);
txControl.setRollbackOnly();
return null;
});
assertEquals(Long.valueOf(0), txControl.notSupported(() -> {
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Long> countQuery = cb.createQuery(Long.class);
countQuery.select(cb.count(countQuery.from(Message.class)));
return em.createQuery(countQuery).getSingleResult();
}));
}
use of javax.persistence.criteria.CriteriaQuery in project CzechIdMng by bcvsolutions.
the class AbstractReadDtoService method findEntities.
protected Page<E> findEntities(F filter, Pageable pageable, BasePermission... permission) {
// transform filter to criteria
Specification<E> criteria = new Specification<E>() {
public Predicate toPredicate(Root<E> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
List<Predicate> predicates = new ArrayList<>();
// if filter is null, no filter predicates will be built
if (filter != null) {
predicates.addAll(AbstractReadDtoService.this.toPredicates(root, query, builder, filter));
}
//
// permisions are not evaluated, if no permission was given or authorizable type is null (=> authorization policies are not supported)
BasePermission[] permissions = PermissionUtils.trimNull(permission);
if (!ObjectUtils.isEmpty(permissions) && (AbstractReadDtoService.this instanceof AuthorizableService)) {
AuthorizableType authorizableType = ((AuthorizableService<?>) AbstractReadDtoService.this).getAuthorizableType();
if (authorizableType != null && authorizableType.getType() != null) {
predicates.add(getAuthorizationManager().getPredicate(root, query, builder, permissions));
}
}
//
return query.where(predicates.toArray(new Predicate[predicates.size()])).getRestriction();
}
};
return getRepository().findAll(criteria, pageable);
}
use of javax.persistence.criteria.CriteriaQuery in project FP-PSP-SERVER by FundacionParaguaya.
the class SnapshotDraftSpecification method createdAtLessDays.
public static Specification<SnapshotDraftEntity> createdAtLessDays(long days) {
return new Specification<SnapshotDraftEntity>() {
@Override
public Predicate toPredicate(Root<SnapshotDraftEntity> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
LocalDateTime limit = LocalDateTime.now();
limit = limit.minusDays(days);
return cb.and(cb.greaterThan(root.<LocalDateTime>get(SnapshotDraftEntity_.getCreatedAt()), limit));
}
};
}
use of javax.persistence.criteria.CriteriaQuery in project FP-PSP-SERVER by FundacionParaguaya.
the class SnapshotEconomicSpecification method createdAtLess2Months.
public static Specification<SnapshotEconomicEntity> createdAtLess2Months() {
return new Specification<SnapshotEconomicEntity>() {
@Override
public Predicate toPredicate(Root<SnapshotEconomicEntity> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
LocalDateTime limit = LocalDateTime.now();
limit = limit.minusMonths(MONTH_AGO).withDayOfMonth(1);
return cb.and(cb.greaterThan(root.<LocalDateTime>get(SnapshotEconomicEntity_.getCreatedAt()), limit));
}
};
}
use of javax.persistence.criteria.CriteriaQuery in project FP-PSP-SERVER by FundacionParaguaya.
the class FamilySpecification method byFilter.
public static Specification<FamilyEntity> byFilter(FamilyFilterDTO filter) {
return new Specification<FamilyEntity>() {
@Override
public Predicate toPredicate(Root<FamilyEntity> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
List<Predicate> predicates = new ArrayList<>();
if (filter.getApplicationId() != null) {
Join<FamilyEntity, ApplicationEntity> joinApplication = root.join(FamilyEntity_.getApplication());
Expression<Long> byApplicationId = joinApplication.<Long>get(ID_ATTRIBUTE);
predicates.add(cb.equal(byApplicationId, filter.getApplicationId()));
}
if (filter.getOrganizationId() != null) {
Expression<Long> byOrganizationId = root.join(FamilyEntity_.getOrganization()).<Long>get(ID_ATTRIBUTE);
predicates.add(cb.equal(byOrganizationId, filter.getOrganizationId()));
}
if (filter.getCountryId() != null) {
Join<FamilyEntity, CountryEntity> joinCountry = root.join(FamilyEntity_.getCountry());
Expression<Long> byCountryId = joinCountry.<Long>get(ID_ATTRIBUTE);
predicates.add(cb.equal(byCountryId, filter.getCountryId()));
}
if (filter.getCityId() != null) {
Join<FamilyEntity, CityEntity> joinCity = root.join(FamilyEntity_.getCity());
Expression<Long> byCityId = joinCity.<Long>get(ID_ATTRIBUTE);
predicates.add(cb.equal(byCityId, filter.getCityId()));
}
if (StringUtils.isNotEmpty(filter.getName())) {
String nameParamQuery = "%" + filter.getName().toLowerCase().replaceAll("\\s", "%") + "%";
Expression<String> likeName = cb.lower(root.get(FamilyEntity_.getName()));
predicates.add(cb.like(likeName, nameParamQuery));
}
if (filter.getLastModifiedGt() != null) {
LocalDateTime dateTimeParam = LocalDateTime.parse(filter.getLastModifiedGt());
Predicate predicate = cb.greaterThan(root.get(FamilyEntity_.getLastModifiedAt()), dateTimeParam);
predicates.add(predicate);
}
predicates.add(cb.isTrue(root.get(FamilyEntity_.getIsActive())));
return cb.and(predicates.toArray(new Predicate[predicates.size()]));
}
};
}
Aggregations