/**
* Generate a criteria query predicate for a where clause based on the given parameters.
*
* @param root The root to use
* @param cb The criteria builder to use
* @param movie The MovieEntity object
* @param field The movie field
* @param status The contribution status
* @param fromDate Creation date range "from"
* @param toDate Creation date range "to"
* @return The specification
*/
public static Predicate getFindPredicate(
final Root<ContributionEntity> root,
final CriteriaBuilder cb,
@Nullable final MovieEntity movie,
@Nullable final MovieField field,
@Nullable final DataStatus status,
@Nullable final Date fromDate,
@Nullable final Date toDate
) {
final List<Predicate> predicates = new ArrayList<>();
if (Optional.ofNullable(movie).isPresent()) {
predicates.add(cb.equal(root.get(ContributionEntity_.movie), movie));
}
if (Optional.ofNullable(field).isPresent()) {
predicates.add(cb.equal(root.get(ContributionEntity_.field), field));
}
if (Optional.ofNullable(status).isPresent()) {
predicates.add(cb.equal(root.get(ContributionEntity_.status), status));
}
if (fromDate != null) {
predicates.add(cb.greaterThanOrEqualTo(root.get(ContributionEntity_.created), fromDate));
}
if (toDate != null) {
predicates.add(cb.lessThanOrEqualTo(root.get(ContributionEntity_.created), toDate));
}
return cb.and(predicates.toArray(new Predicate[predicates.size()]));
}
java类javax.persistence.criteria.Root的实例源码
ContributionSpecs.java 文件源码
项目:REST-Web-Services
阅读 28
收藏 0
点赞 0
评论 0
DatatableSpecification.java 文件源码
项目:datatable-java
阅读 28
收藏 0
点赞 0
评论 0
private Predicate getPredicateColonnes(final Root<T> root, final CriteriaQuery<?> query, final CriteriaBuilder cb,
Predicate predicate) {
// check for each searchable column whether a filter value exists
for (final DatatableColumn column : input.getColumns()) {
final boolean isColumnSearchable =
column.getSearchable() && column.getSearch() != null
&& hasText(column.getSearch().getValue());
if (!isColumnSearchable) {
continue;
}
LOGGER.fine("colonne a filtrer: {"+ column+"}");
// the filter contains only one value, add a 'WHERE .. LIKE'
// clause
if (isBoolean(column.getSearch().getValue())) {
final Expression<Boolean> booleanExpression = DatatableHelper.getExpression(root, column.getData(), Boolean.class);
predicate =
cb.and(predicate, cb.equal(booleanExpression, Boolean.valueOf(column.getSearch().getValue())));
} else {
final Expression<String> stringExpression = DatatableHelper.getExpression(root, column.getData(), String.class);
predicate = cb.and(predicate, cb.like(cb.lower(stringExpression),
getLikeFilterValue(column.getSearch().getValue()), ESCAPE_CHAR));
}
}
return predicate;
}
AbstractRepository.java 文件源码
项目:Info-Portal
阅读 27
收藏 0
点赞 0
评论 0
protected List<T> findAll(Class<T> clazz) {
CriteriaBuilder cb = getEntityManager().getCriteriaBuilder();
CriteriaQuery<T> cq = cb.createQuery(clazz);
Root<T> rootEntry = cq.from(clazz);
CriteriaQuery<T> all = cq.select(rootEntry);
TypedQuery<T> allQuery = getEntityManager().createQuery(all);
return allQuery.getResultList();
}
RequestBean.java 文件源码
项目:tap17-muggl-javaee
阅读 34
收藏 0
点赞 0
评论 0
public List<StatusEntry> getStatusEntriesByDate(Date date) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
CriteriaQuery<StatusEntry> cq = cb.createQuery(StatusEntry.class);
Root<StatusEntry> statusEntry = cq.from(StatusEntry.class);
cq.select(statusEntry);
cq.where(cb.equal(statusEntry.get(StatusEntry_.statusDate), cal));
cq.distinct(true);
TypedQuery<StatusEntry> q = em.createQuery(cq);
return q.getResultList();
}
LiveSalesListFacadeREST.java 文件源码
项目:marathonv5
阅读 46
收藏 0
点赞 0
评论 0
@GET
@Produces({"application/xml", "application/json"})
@Path("/recent/producttype/{id}")
public List<LiveSalesList> findRecentProductType(@PathParam("id") Integer productTypeId) {
CriteriaBuilder cb = getEntityManager().getCriteriaBuilder();
javax.persistence.criteria.CriteriaQuery cq = cb.createQuery();
Root<LiveSalesList> liveSalesList = cq.from(LiveSalesList.class);
cq.select(liveSalesList);
cq.where(cb.equal(liveSalesList.get(LiveSalesList_.productTypeId), productTypeId));
Query q = getEntityManager().createQuery(cq);
q.setMaxResults(500);
return q.getResultList();
}
SecurityGroupEntityMgr.java 文件源码
项目:osc-core
阅读 31
收藏 0
点赞 0
评论 0
public static List<SecurityGroup> listByProtectAllAndProjectId(EntityManager em, String projectId) {
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<SecurityGroup> query = cb.createQuery(SecurityGroup.class);
Root<SecurityGroup> root = query.from(SecurityGroup.class);
query = query.select(root)
.distinct(true)
.where(cb.and(
cb.equal(root.get("projectId"), projectId),
cb.equal(root.get("protectAll"), true)));
return em.createQuery(query).getResultList();
}
ComputationLogRepositoryImpl.java 文件源码
项目:xsharing-services-router
阅读 22
收藏 0
点赞 0
评论 0
@Override
public ComputationLog findLog(DateTime timestamp) throws DatabaseException {
// find log by time stamp
CriteriaBuilder cb = entityManager.getCriteriaBuilder();
CriteriaQuery<ComputationLog> c = cb.createQuery(ComputationLog.class);
Root<ComputationLog> log = c.from(ComputationLog.class);
c.where(cb.equal(log.get(ComputationLog_.timestamp), timestamp));
TypedQuery<ComputationLog> query = entityManager.createQuery(c);
try {
return query.getSingleResult();
} catch (RuntimeException e) {
throw new DatabaseException(e.getMessage());
}
}
ValueSetDao.java 文件源码
项目:careconnect-reference-implementation
阅读 20
收藏 0
点赞 0
评论 0
private ValueSetEntity findValueSetEntity(IdType theId) {
ValueSetEntity valueSetEntity = null;
// Only look up if the id is numeric else need to do a search
if (daoutils.isNumeric(theId.getValue())) {
valueSetEntity =(ValueSetEntity) em.find(ValueSetEntity.class, theId.getValue());
}
// if null try a search on strId
if (valueSetEntity == null)
{
CriteriaBuilder builder = em.getCriteriaBuilder();
CriteriaQuery<ValueSetEntity> criteria = builder.createQuery(ValueSetEntity.class);
Root<ValueSetEntity> root = criteria.from(ValueSetEntity.class);
List<Predicate> predList = new LinkedList<Predicate>();
Predicate p = builder.equal(root.<String>get("strId"),theId.getValue());
predList.add(p);
Predicate[] predArray = new Predicate[predList.size()];
predList.toArray(predArray);
if (predList.size()>0)
{
criteria.select(root).where(predArray);
List<ValueSetEntity> qryResults = em.createQuery(criteria).getResultList();
for (ValueSetEntity cme : qryResults)
{
valueSetEntity = cme;
break;
}
}
}
return valueSetEntity;
}
DatatableHelper.java 文件源码
项目:datatable-java
阅读 25
收藏 0
点赞 0
评论 0
/**
* Cree une expression Criteria API avec l'atribut de l'entité passé en parametre
*
* @param root
* entité JPA contenant le champ
* @param columnData
* nom du champ
* @param clazz
* class du champ
* @param <S>
* type du champ
* @return l'expression de l'atribut
*/
public static <S> Path<S> getExpression(final Root<?> root, final String columnData, final Class<S> clazz) {
if (!columnData.contains(DatatableSpecification.ATTRIBUTE_SEPARATOR)) {
// columnData is like "attribute" so nothing particular to do
return root.get(columnData);
}
// columnData is like "joinedEntity.attribute" so add a join clause
final String[] values = columnData.split(DatatableSpecification.ESCAPED_ATTRIBUTE_SEPARATOR);
final Attribute<?, ?> attribute = root.getModel().getAttribute(values[0]);
if (attribute == null) {
throw new IllegalArgumentException(
"Colonne '" + values[0] + "' (" + columnData + ") introuvable depuis l'entité '" + root.getJavaType()
+ "'");
}
if (attribute.getPersistentAttributeType() == PersistentAttributeType.EMBEDDED) {
// with @Embedded attribute
return root.get(values[0]).get(values[1]);
}
From<?, ?> from = root;
for (int i = 0; i < values.length - 1; i++) {
Join<?, ?> join = null;
for (final Join<?, ?> joinCandidate : from.getJoins()) {
if (joinCandidate.getAttribute().getName().equals(values[i])) {
// LOGGER.debug("Trouve joint d'entite: '{}'", values[i]);
join = joinCandidate;
}
}
if (join == null) {
// LOGGER.debug("Joigant entite '{}'...", values[i]);
join = from.join(values[i], JoinType.INNER);
}
from = join;
}
return from.get(values[values.length - 1]);
}
AdministratieveHandelingFilterFactory.java 文件源码
项目:OperatieBRP
阅读 21
收藏 0
点赞 0
评论 0
@Override
public Predicate toPredicate(final Root<?> administratieveHandelingRoot, final CriteriaQuery<?> query, final CriteriaBuilder cb) {
final Root<PersoonAfgeleidAdministratiefHistorie> persoonHistoryRoot = query.from(PersoonAfgeleidAdministratiefHistorie.class);
// Join persoon
final Predicate joinPredicate = administratieveHandelingRoot.get(ID).in(persoonHistoryRoot.get(ADMINISTRATIEVE_HANDELING).get(ID));
// Bsn
final Predicate bsnPredicate = cb.equal(persoonHistoryRoot.get(PERSOON).get(BURGERSERVICE_NUMMER), value);
return cb.and(bsnPredicate, joinPredicate);
}