Java 类javax.persistence.criteria.ParameterExpression 实例源码

项目:tap17-muggl-javaee    文件:MugglEntityManager.java   
public Object createQuery(CriteriaQueryWrapper criteriaQueryWrapper) {
    TypedQuery typedQuery = this.original.createQuery(criteriaQueryWrapper.getOriginal());
    QLStatement qlStmt = hqlAnalyzer.getQLSelectStatement(typedQuery);

    int i=0;
    for(Objectref parameter : criteriaQueryWrapper.getSymbolicParameter()) {
        qlStmt.setParameter("param"+i++, parameter);
    }

    for(Object o : criteriaQueryWrapper.getOriginal().getParameters()) {
        if(o instanceof ParameterExpression) {
            ParameterExpression<?> paraExpr = (ParameterExpression<?>)o;
            paraExpr.getAlias();
            paraExpr.getName();

        }
    }
    return qlStmt;
}
项目:SpringMVCSeedProject    文件:BaseRepositoryTest.java   
/**
 * 对getAllByQuery的单元测试
 */
@Test
public void getAllByQueryTest() {
    Query query = new Query(User.class, entityManager);
    ParameterExpression<Enum> parameter1 = query.createParameter(Enum.class);
    ParameterExpression<String> parameter2 = query.createParameter(String.class);
    List resultList = query.whereEqual("authorityType", parameter1)
            .whereLike("passWord", parameter2)
            .createTypedQuery()
            .setParameter(parameter1, AuthorityType.College_Level_Admin)
            .setParameter(parameter2, "BaseRepository")
            .getResultList();
    if (resultList != null) {
        resultList.forEach(System.out::println);
    }
}
项目:HibernateTips    文件:TestLogging.java   
@Test
public void selectAuthorsCriteria() {
    log.info("... selectAuthorsCriteria ...");

    EntityManager em = emf.createEntityManager();
    em.getTransaction().begin();

    CriteriaBuilder cb = em.getCriteriaBuilder();
    CriteriaQuery<Author> cq = cb.createQuery(Author.class);
    Root<Author> root = cq.from(Author.class);
    cq.select(root);
    ParameterExpression<Long> idParam = cb.parameter(Long.class, "id");
    cq.where(cb.equal(root.get("id"), idParam));
    TypedQuery<Author> q = em.createQuery(cq);
    q.setParameter("id", 1L);
    q.setHint("org.hibernate.comment", "This is my comment");
    q.getSingleResult();

    em.getTransaction().commit();
    em.close();
}
项目:SpringMVCWithJavaConfig    文件:BaseRepositoryTest.java   
/**
 * 对getAllByQuery的单元测试
 */
@Test
public void getAllByQueryTest() {
    Query query = new Query(User.class, entityManager);
    ParameterExpression<Enum> parameter1 = query.createParameter(Enum.class);
    ParameterExpression<String> parameter2 = query.createParameter(String.class);
    List resultList = query.whereEqual("authorityType", parameter1)
            .whereLike("passWord", parameter2)
            .createTypedQuery()
            .setParameter(parameter1, AuthorityType.College_Level_Admin)
            .setParameter(parameter2, "BaseRepository")
            .getResultList();
    if (resultList != null) {
        resultList.forEach(System.out::println);
    }
}
项目:springJpaKata    文件:JpaCriteriaTest.java   
@Test
public void shouldUseTuple(){

            String searchName = "borowiec2";
            CriteriaBuilder cb = em.getCriteriaBuilder();
            //CriteriaQuery<Object[]> c = cb.createQuery(Object[].class); //<4>
            CriteriaQuery<Tuple> criteria = cb.createQuery(Tuple.class); //<1>
            Root<Person> root = criteria.from(Person.class);//<2>
            ParameterExpression<String> lastNameParameter = cb.parameter(String.class,"lastName");
            criteria.multiselect(root.get("firstName"), root.get("version")).where(cb.equal(root.get("lastName"),lastNameParameter));

            List<Tuple> tupleResult = em.createQuery(criteria).setParameter("lastName", searchName).getResultList();//<3>
            for (Tuple t : tupleResult) {
               log.info("fistName : {} , version : {} ",t.get(0),t.get(1));
            }
            Assertions.assertThat(tupleResult.size()).isEqualTo(1);
}
项目:springJpaKata    文件:JpaCriteriaTest.java   
@Test
    public void shouldUseConstruct(){

        String searchName = "borowiec2";
        CriteriaBuilder cb = em.getCriteriaBuilder();
        //CriteriaQuery<Object[]> c = cb.createQuery(Object[].class); //<4>
        CriteriaQuery<PersonWrapper> criteria = cb.createQuery(PersonWrapper.class); //<1>
        Root<Person> root = criteria.from(Person.class);//<2>
        ParameterExpression<String> lastNameParameter = cb.parameter(String.class,"lastName");
        criteria.select(cb.construct(PersonWrapper.class, root.get("firstName"),root.get("version"))).where(cb.equal(root.get("lastName"),lastNameParameter));

        List<PersonWrapper> result = em.createQuery(criteria).setParameter("lastName", searchName).getResultList();//<3>
        for (PersonWrapper pw : result) {
           log.info("pw : {}",pw);
        }

}
项目:low-latency-high-throughput    文件:AlternativeJPAController.java   
private List<Alternative> findAlternativeEntitiesByPollId(Long pollId, boolean all, int maxResults, int firstResult) {
    CriteriaBuilder cb = em.getCriteriaBuilder();

    CriteriaQuery<Alternative> q = cb.createQuery(Alternative.class);
    Root<Alternative> alt = q.from(Alternative.class);
    ParameterExpression<Long> pid = cb.parameter(Long.class);
    q.select(alt).where(cb.equal(alt.get(Alternative_.poll).get(Poll_.id), pid));

    TypedQuery<Alternative> query = em.createQuery(q);
    query.setParameter(pid, pollId);

    if (!all) {
        query.setMaxResults(maxResults);
        query.setFirstResult(firstResult);
    }
    List<Alternative> results = query.getResultList();
    System.out.println(">>>>>>>>>>>>>>>>>>>> Alternatives: " + results);
    return results;
}
项目:low-latency-high-throughput    文件:VoteJPAController.java   
private List<Vote> findVoteEntitiesByPollAltIds(Long pollId, Long altId, boolean all, int maxResults, int firstResult) {
     CriteriaBuilder cb = em.getCriteriaBuilder();

     CriteriaQuery<Vote> q = cb.createQuery(Vote.class);
     Root<Vote> vote = q.from(Vote.class);
     ParameterExpression<Long> pid = cb.parameter(Long.class);
     ParameterExpression<Long> aid = cb.parameter(Long.class);
     q.select(vote).where(cb.and(
         cb.equal(vote.get(Vote_.alternative).get(Alternative_.poll).get(Poll_.id), pid),
         cb.equal(vote.get(Vote_.alternative).get(Alternative_.id), aid)
     ));

     TypedQuery<Vote> query = em.createQuery(q);
     query.setParameter(pid, pollId).setParameter(aid, altId);

     if (!all) {
         query.setMaxResults(maxResults);
         query.setFirstResult(firstResult);
     }
     List<Vote> results = query.getResultList();
     System.out.println(">>>>>>>>>>>>>>>>>>>> Votes: " + results);
     return results;
}
项目:eclipselink-multitenant    文件:ConfigurationDao.java   
public Optional<Configuration> findByName(ReadContext ctx, String name) {
    EntityManager em = emf.createEntityManager();
    em.setProperty(PersistenceUnitProperties.MULTITENANT_PROPERTY_DEFAULT, ctx.getTenant());
    em.setProperty("private-key", ctx.getPrivateKey());

    CriteriaBuilder cb = em.getCriteriaBuilder();

    CriteriaQuery<Configuration> q = cb.createQuery(Configuration.class);
    Root<Configuration> c = q.from(Configuration.class);
    ParameterExpression<String> p = cb.parameter(String.class);
    q.select(c).where(cb.equal(c.get("name"), p));

    TypedQuery<Configuration> query = em.createQuery(q);
    query.setParameter(p, name);

    Configuration configuration = query.getSingleResult();

    return Optional.ofNullable(configuration);
}
项目:eclipselink-multitenant    文件:StatusDao.java   
public Optional<Status> findByName(Status.Name statusName) {
    EntityManager em = emf.createEntityManager();

    CriteriaBuilder cb = em.getCriteriaBuilder();

    CriteriaQuery<Status> q = cb.createQuery(Status.class);
    Root<Status> c = q.from(Status.class);
    ParameterExpression<String> p = cb.parameter(String.class);
    q.select(c).where(cb.equal(c.get("name"), p));

    TypedQuery<Status> query = em.createQuery(q);
    query.setParameter(p, statusName.name());

    try {
        Status status = query.getSingleResult();
        return Optional.of(status);
    } catch (NoResultException e) {
        return Optional.empty();
    }
}
项目:SocialDataImporter    文件:OxSqlJob.java   
/**
 * @param aEmail
 * @return
 */
public OxUser findPersonByEmail( String aEmail )
{
    CriteriaBuilder cb = myEntityManager.getCriteriaBuilder();

    CriteriaQuery<OxUser> criteria = cb.createQuery(OxUser.class);
    Root<OxUser> root = criteria.from(OxUser.class);
    ParameterExpression<String> mailParam = cb.parameter(String.class);
    criteria.select(root).where(cb.equal( root.get("email"), mailParam ));

    TypedQuery<OxUser> queryEMail = myEntityManager.createQuery(criteria);

    queryEMail.setParameter( mailParam, aEmail );
    List<OxUser> results = queryEMail.getResultList();

    OxUser oxUser = null;

    if ( results.size() > 0 )
    {
        oxUser = results.get( 0 );
    } // if results.size() > 0

    return oxUser;
}
项目:SocialDataImporter    文件:OxSqlJob.java   
/**
 * @param aUserId
 * @return
 */
public OxUserUnapproved findUnapprovedUser( Long aUserId )
{
    CriteriaBuilder cb = myEntityManager.getCriteriaBuilder();

    CriteriaQuery<OxUserUnapproved> criteria = cb.createQuery(OxUserUnapproved.class);
    Root<OxUserUnapproved> root = criteria.from(OxUserUnapproved.class);
    ParameterExpression<Long> param = cb.parameter(Long.class);
    criteria.select(root).where(cb.equal( root.get("userId"), param ));

    TypedQuery<OxUserUnapproved> queryEMail = myEntityManager.createQuery(criteria);

    queryEMail.setParameter( param, aUserId );
    List<OxUserUnapproved> results = queryEMail.getResultList();

    OxUserUnapproved userUnapproved = null;

    if ( results.size() > 0 )
    {
        userUnapproved = results.get( 0 );
    } // if results.size() > 0

    return userUnapproved;
}
项目:jpa    文件:CriteriaService.java   
/**
 * SELECT e FROM jpa_query_employee e WHERE e.name= :name
 */
@Transactional
public void doParameterQuery(){
    CriteriaBuilder cb = em.getCriteriaBuilder();
    CriteriaQuery<Employee> c = cb.createQuery(Employee.class);
    Root<Employee> e = c.from(Employee.class);

    // parameter, equal to ":name"
    ParameterExpression<String> paraName = cb.parameter(String.class, "name");

    // e.name = ":name"
    c.select(e)
        .where(cb.equal(e.get("name"), paraName));

    // set param value
    TypedQuery<Employee> query = em.createQuery(c);
    query.setParameter("name", "employee_1");
    List<Employee> result = query.getResultList();
    ResultViewer.showResult(result, "criteria query : parameter query");
}
项目:JavaIncrementalParser    文件:QueryRepository.java   
/**
 * Builds a criteria query equal to the JPQL
 * 
 * <code>SELECT _testEntity FROM TestEntity _testEntity WHERE _testEntity.value :value</code>
 * 
 *
 */
private TypedQuery<TestEntity> buildGetByValue() {
    CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();

    CriteriaQuery<TestEntity> criteriaQuery = criteriaBuilder.createQuery(TestEntity.class);
    Root<TestEntity> root = criteriaQuery.from(TestEntity.class);
    ParameterExpression<String> valueParameter = criteriaBuilder.parameter(String.class, TestEntity_.value.getName());

    criteriaQuery.select(root)
         .where(
             criteriaBuilder.equal(
                 root.get(TestEntity_.value), valueParameter)
    );

    return entityManager.createQuery(criteriaQuery);
}
项目:stdlib    文件:JPAQueryBuilder.java   
public <C> Query<C> createSelectCustom(JPAQueryCustomiser customiser)
{
    customiser.apply(criteriaBuilder, generated, root, this);

    final Query query = session.createQuery(generated);

    if (offset != null)
        query.getQueryOptions().setFirstRow(offset);
    if (limit != null)
        query.getQueryOptions().setMaxRows(limit);

    // Set all the parameters
    for (Map.Entry<ParameterExpression, Object> entry : this.params.entrySet())
    {
        query.setParameter(entry.getKey(), entry.getValue());
    }

    return query;
}
项目:stdlib    文件:JPAQueryBuilder.java   
public Query<T> createSelectEntity()
{
    generated.select(root);

    applyFetches();

    generated.orderBy(orders); // Make sure we return the results in the correct order

    final Query<T> query = session.createQuery(generated);

    if (offset != null)
        query.getQueryOptions().setFirstRow(offset);
    if (limit != null)
        query.getQueryOptions().setMaxRows(limit);

    query.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);

    // Set all the parameters
    for (Map.Entry<ParameterExpression, Object> entry : this.params.entrySet())
    {
        query.setParameter(entry.getKey(), entry.getValue());
    }

    return query;
}
项目:endpoint-health    文件:EndPointCheckDao.java   
public Collection<EndPointCheck> findByDateRange(final EndPoint endPoint, final Date startDate,
        final Date endDate) {
    final CriteriaBuilder criteriaBuilder = getEntityManager().getCriteriaBuilder();
    final CriteriaQuery<EndPointCheck> criteriaQuery = criteriaBuilder.createQuery(getEntityClass());
    final Root<EndPointCheck> root = criteriaQuery
            .from(getEntityManager().getMetamodel().entity(getEntityClass()));

    final ParameterExpression<EndPoint> endPointParameter = criteriaBuilder.parameter(EndPoint.class);
    final ParameterExpression<Date> startDateParameter = criteriaBuilder.parameter(Date.class);
    final ParameterExpression<Date> endDateParameter = criteriaBuilder.parameter(Date.class);

    final Predicate endPointIdPredicate = criteriaBuilder
            .equal(root.get("endPoint"), endPointParameter);

    final Path<Date> checkDatePath = root.<Date> get("checkDate");

    final Predicate startDatePredicate = criteriaBuilder
            .greaterThanOrEqualTo(checkDatePath, startDateParameter);

    final Predicate endDatePredicate = criteriaBuilder.lessThanOrEqualTo(
        checkDatePath,
        endDateParameter);

    criteriaQuery.where(criteriaBuilder.and(endPointIdPredicate, startDatePredicate, endDatePredicate));

    criteriaQuery.orderBy(Arrays.asList(criteriaBuilder.asc(checkDatePath)));

    return getEntityManager().createQuery(criteriaQuery)
            .setParameter(endPointParameter, endPoint)
            .setParameter(startDateParameter, startDate, TemporalType.DATE)
            .setParameter(endDateParameter, endDate, TemporalType.DATE)
            .getResultList();
}
项目:SpringMVCSeedProject    文件:QueryTest.java   
@Test
public void getStatisticsByQueryTest2() {
    Query query = new Query(entityManager);
    ParameterExpression parameter = query.createParameter(String.class);
    query.from(Teacher.class)
            .selectMax("id")
            .whereNotEqual("name", parameter)
            .whereIsNotNull("name")
            .groupBy("passWord")
            .createTypedQuery()
            .setParameter(parameter, "name")
            .getResultList()
            .forEach(System.out::println);
}
项目:HibernateTips    文件:TestCriteriaQuery.java   
@Test
public void getBooks() {
    log.info("... getBooks ...");

    EntityManager em = emf.createEntityManager();
    em.getTransaction().begin();

    CriteriaBuilder cb = em.getCriteriaBuilder();
    CriteriaQuery<Book> cq = cb.createQuery(Book.class);
    Root<Book> root = cq.from(Book.class);
    SetJoin<Book, Author> authors = root.join(Book_.authors);

    ParameterExpression<String> paramFirstName = cb.parameter(String.class);
    ParameterExpression<String> paramLastName = cb.parameter(String.class);
    cq.where(
        cb.and(
            cb.equal(authors.get(Author_.firstName), paramFirstName), 
            cb.equal(authors.get(Author_.lastName), paramLastName)));

    TypedQuery<Book> query = em.createQuery(cq);
    query.setParameter(paramFirstName, "Thorben");
    query.setParameter(paramLastName, "Janssen");
    List<Book> books = query.getResultList();
    Assert.assertEquals(1, books.size());

    for (Book b : books) {
        log.info(b);
    }

    em.getTransaction().commit();
    em.close();
}
项目:HibernateTips    文件:TestCriteriaConstructor.java   
@Test
public void callFunction() {
    log.info("... callFunction ...");

    EntityManager em = emf.createEntityManager();
    em.getTransaction().begin();

    CriteriaBuilder cb = em.getCriteriaBuilder();
    CriteriaQuery<Book> cq = cb.createQuery(Book.class);
    Root<Book> root = cq.from(Book.class);

    ParameterExpression<Double> doubleParam1 = cb.parameter(Double.class);
    ParameterExpression<Double> doubleParam2 = cb.parameter(Double.class);
    cq.where(cb.greaterThan(doubleParam2, cb.function("calculate", Double.class, root.get(Book_.price), doubleParam1)));

    TypedQuery<Book> q = em.createQuery(cq);
    q.setParameter(doubleParam1, 10.0D);
    q.setParameter(doubleParam2, 40.0D);
    List<Book> books = q.getResultList();

    for (Book b : books) {
        log.info(b);
    }

    em.getTransaction().commit();
    em.close();
}
项目:SpringMVCWithJavaConfig    文件:QueryTest.java   
@Test
public void getStatisticsByQueryTest2() {
    Query query = new Query(entityManager);
    ParameterExpression parameter = query.createParameter(String.class);
    query.from(Teacher.class)
            .selectMax("id")
            .whereNotEqual("name", parameter)
            .whereIsNotNull("name")
            .groupBy("passWord")
            .createTypedQuery()
            .setParameter(parameter, "name")
            .getResultList()
            .forEach(System.out::println);
}
项目:springJpaKata    文件:SampleRepo.java   
public List<Employee> findWithDeptName(String deptName) {
    CriteriaBuilder cb = em.getCriteriaBuilder();
    CriteriaQuery<Employee> c = cb.createQuery(Employee.class);
    Root<Employee> emp = c.from(Employee.class);
    c.select(emp);

    ParameterExpression<String> dept = cb.parameter(String.class, "deptName");
    c.where(cb.equal(emp.get("dept").get("name"), dept));

    TypedQuery<Employee> query = em.createQuery(c);
    query.setParameter("deptName", deptName);

    return query.getResultList();
}
项目:springJpaKata    文件:JpaCriteriaTest.java   
@Test
public void shouldUseParameterExpressionToFindName(){

            String searchName = "borowiec2";
            CriteriaBuilder cb = em.getCriteriaBuilder();
            CriteriaQuery<String> criteria = cb.createQuery(String.class); //<1>
            Root<Person> root = criteria.from(Person.class);//<2>
            ParameterExpression<String> lastNameParameter = cb.parameter(String.class,"lastName"); //<3>
            criteria.select(root.get("firstName")).where(cb.equal(root.get("lastName"),lastNameParameter)); //<4>
            List<String> result  = em.createQuery(criteria).setParameter("lastName", searchName).getResultList(); //<5>
            log.info("{}",result);


}
项目:springJpaKata    文件:JpaCriteriaTest.java   
@Test
public void shouldUseParameterExpressionToFindLikeName(){

            String searchName = "borowie%";
            CriteriaBuilder cb = em.getCriteriaBuilder();
            CriteriaQuery<String> criteria = cb.createQuery(String.class);
            Root<Person> root = criteria.from(Person.class);
            ParameterExpression<String> lastNameParameter = cb.parameter(String.class,"lastName");
            criteria.select(root.get("firstName")).where(cb.like(root.get("lastName"),lastNameParameter));
            criteria.orderBy(cb.desc(root.get("firstName")));
            List<String> result  = em.createQuery(criteria).setParameter("lastName", searchName).getResultList();
            log.info("{}",result);


}
项目:springJpaKata    文件:JpaCriteriaTest.java   
@Test
public void shouldFindLikeLowerName(){

            String searchName = "borowie%";
            CriteriaBuilder cb = em.getCriteriaBuilder();
            CriteriaQuery<String> criteria = cb.createQuery(String.class);
            Root<Person> root = criteria.from(Person.class);
            ParameterExpression<String> lastNameParameter = cb.parameter(String.class,"lastName");
            criteria.select(root.get("firstName")).where(cb.like(cb.lower(root.get("lastName")),lastNameParameter));
            criteria.orderBy(cb.desc(root.get("firstName")));
            List<String> result  = em.createQuery(criteria).setParameter("lastName", searchName).getResultList();
            log.info("{}",result);


}
项目:JpaCriteriaWithLambdaExpressions    文件:AbstractDao.java   
/**
 * Creates a TypedQuery which can be further customized by calling its methods such as setMaxResults() or setFirstResult.
 * To get results, call its getResultList() or getSingleResult() method.
 * Method is private, so it cannot be overridden - it's used by other methods.
 */
private TypedQuery<T> createTypedQuery(QueryBuilder<T> queryBuilder) {
    CriteriaBuilder cb = em().getCriteriaBuilder();
    CriteriaQuery<T> q = cb.createQuery(entityClass);
    Root<T> root = q.from(entityClass);
    ParameterExpression<Integer> p = cb.parameter(Integer.class);
    CriteriaQuery<T> criteriaQuery = q.select(root);
    criteriaQuery = queryBuilder.build(cb, root, criteriaQuery);
    TypedQuery<T> typedQuery = em.createQuery(criteriaQuery);
    return typedQuery;
}
项目:hibernate-semantic-query    文件:JpaQuerySpecImpl.java   
public Set<ParameterExpression<?>> collectParameters() {
        final Set<ParameterExpression<?>> parameters = new LinkedHashSet<ParameterExpression<?>>();
//      final ParameterRegistry registry = new ParameterRegistry() {
//          public void registerParameter(ParameterExpression<?> parameter) {
//              parameters.add( parameter );
//          }
//      };
//
//      ParameterContainer.Helper.possibleParameter(selection, registry);
//      ParameterContainer.Helper.possibleParameter(restriction, registry);
//      ParameterContainer.Helper.possibleParameter(having, registry);
//      if ( subqueries != null ) {
//          for ( Subquery subquery : subqueries ) {
//              ParameterContainer.Helper.possibleParameter(subquery, registry);
//          }
//      }
//
//      // both group-by and having expressions can (though unlikely) contain parameters...
//      ParameterContainer.Helper.possibleParameter(having, registry);
//      if ( groupings != null ) {
//          for ( Expression<?> grouping : groupings ) {
//              ParameterContainer.Helper.possibleParameter(grouping, registry);
//          }
//      }
//
        return parameters;
    }
项目:SocialDataImporter    文件:OxSqlJob.java   
/**
 * Checks if the given hash is present in the ow_base_avatar table
 *
 * @param aHash
 * @return
 */
public boolean isAvatarHashPresent( Long aHash )
{
    if ( myDryRun )
    {
        myLog.debug( "DryRun is active. Not checking for duplicate avatar hash" );
        return false;
    } // if myDryRun

    CriteriaBuilder cb = myEntityManager.getCriteriaBuilder();

    CriteriaQuery<OxAvatar> criteria = cb.createQuery(OxAvatar.class);
    Root<OxAvatar> root = criteria.from(OxAvatar.class);
    ParameterExpression<Long> avatarParam = cb.parameter(Long.class);
    avatarParam = cb.parameter(Long.class);
    criteria.select(root).where(cb.equal( root.get("hash"), avatarParam ));
    TypedQuery<OxAvatar> query = myEntityManager.createQuery(criteria);
    query.setParameter( avatarParam, aHash );
    List<OxAvatar> results = query.getResultList();

    if ( results.size() > 0 )
    {
        myLog.debug( "given avatar hash is already present: " + aHash );
        return true;
    } // if results.size() > 0

    return false;
}
项目:stdlib    文件:JPAQueryBuilder.java   
public Query createSelectIDs()
{
    this.generated.distinct(true);

    generated.orderBy(orders); // Make sure we return the results in the correct order

    List<Selection<?>> selects = new ArrayList<>();

    if (root.getModel().hasSingleIdAttribute())
    {
        selects.add(root.get(root.getModel().getId(root.getModel().getIdType().getJavaType())));
    }
    else
        throw new NotImplementedException("Cannot handle ID selection with IdClass!");

    for (Order order : orders)
    {
        selects.add(order.getExpression());
    }

    if (selects.size() == 1)
        generated.select(selects.get(0));
    else
        generated.multiselect(selects);

    final Query query = session.createQuery(generated);

    if (offset != null)
        query.getQueryOptions().setFirstRow(offset);
    if (limit != null)
        query.getQueryOptions().setMaxRows(limit);

    // Set all the parameters
    for (Map.Entry<ParameterExpression, Object> entry : this.params.entrySet())
    {
        query.setParameter(entry.getKey(), entry.getValue());
    }

    return query;
}
项目:activejpa    文件:ConditionTest.java   
@BeforeMethod
public void setup() {
    builder = mock(CriteriaBuilder.class);
    path = mock(Path.class);
    when(path.getJavaType()).thenReturn(String.class);
    expression = mock(ParameterExpression.class);
    root = mock(Root.class);
    query = mock(Query.class);
    Parameter param = mock(Parameter.class);
    when(param.getParameterType()).thenReturn(String.class);
    when(query.getParameter(anyString())).thenReturn(param);

}
项目:tap17-muggl-javaee    文件:MugglCriteriaQuery.java   
@Override
public Set<ParameterExpression<?>> getParameters() {
    // TODO Auto-generated method stub
    return null;
}
项目:tap17-muggl-javaee    文件:MugglCriteriaBuilder.java   
@Override
public <T> ParameterExpression<T> parameter(Class<T> paramClass) {
    // TODO Auto-generated method stub
    return null;
}
项目:tap17-muggl-javaee    文件:MugglCriteriaBuilder.java   
@Override
public <T> ParameterExpression<T> parameter(Class<T> paramClass,
        String name) {
    // TODO Auto-generated method stub
    return null;
}
项目:OpenChatAlytics    文件:MentionableDAO.java   
/**
 * {@inheritDoc}
 */
@Override
public Map<String, Double> getActiveColumnsByToTV(String columnName, Interval interval,
                                                  int resultSize, boolean withBots) {

    EntityManager entityManager = entityManagerFactory.createEntityManager();
    CriteriaBuilder cb = entityManager.getCriteriaBuilder();
    CriteriaQuery<Tuple> query = cb.createTupleQuery();

    Root<T> from = query.from(type);

    ParameterExpression<DateTime> startDateParam = cb.parameter(DateTime.class);
    ParameterExpression<DateTime> endDateParam = cb.parameter(DateTime.class);
    Expression<Double> occurrences = from.get("occurrences").as(Double.class);

    // create total query
    Subquery<Long> totalQuery = query.subquery(Long.class);
    Root<T> totalFrom = totalQuery.from(type);
    totalQuery.select(cb.sum(totalFrom.get("occurrences")));
    Path<DateTime> totalMentionTime = totalFrom.get("mentionTime");

    List<Predicate> wherePredicates = Lists.newArrayListWithCapacity(3);
    wherePredicates.add(cb.greaterThanOrEqualTo(totalMentionTime, startDateParam));
    wherePredicates.add(cb.lessThan(totalMentionTime, endDateParam));
    if (!withBots) {
        wherePredicates.add(cb.equal(totalFrom.get("bot"), withBots));
    }
    totalQuery.where(wherePredicates.toArray(new Predicate[wherePredicates.size()]));

    // occurrences / total occurrences
    Expression<Double> ratio = cb.quot(cb.sum(occurrences), totalQuery).as(Double.class);

    Path<String> columnPath = from.get(columnName);
    query.multiselect(columnPath, ratio);
    Path<DateTime> mentionTime = from.get("mentionTime");

    wherePredicates = Lists.newArrayListWithCapacity(4);
    wherePredicates.add(cb.greaterThanOrEqualTo(mentionTime, startDateParam));
    wherePredicates.add(cb.lessThan(mentionTime, endDateParam));
    wherePredicates.add(cb.isNotNull(columnPath));
    if (!withBots) {
        wherePredicates.add(cb.equal(from.get("bot"), withBots));
    }

    query.where(wherePredicates.toArray(new Predicate[wherePredicates.size()]));
    query.groupBy(columnPath);
    query.orderBy(cb.desc(ratio));

    try {
        List<Tuple> resultList = entityManager.createQuery(query)
                                              .setMaxResults(resultSize)
                                              .setParameter(startDateParam, interval.getStart())
                                              .setParameter(endDateParam, interval.getEnd())
                                              .getResultList();
        // linked hashmap to preserve order
        Map<String, Double> result = Maps.newLinkedHashMap();
        for (Tuple tuple : resultList) {
            result.put(tuple.get(columnPath), tuple.get(ratio));
        }
        return result;
    } finally {
        closeEntityManager(entityManager);
    }
}
项目:OpenChatAlytics    文件:MentionableDAO.java   
/**
 * {@inheritDoc}
 */
@Override
public Map<String, Double> getActiveColumnsByToMV(String columnName, Interval interval,
                                                  int resultSize, boolean withBots) {

    EntityManager entityManager = entityManagerFactory.createEntityManager();
    CriteriaBuilder cb = entityManager.getCriteriaBuilder();
    CriteriaQuery<Tuple> query = cb.createTupleQuery();

    Root<T> from = query.from(type);

    ParameterExpression<DateTime> startDateParam = cb.parameter(DateTime.class);
    ParameterExpression<DateTime> endDateParam = cb.parameter(DateTime.class);
    Expression<Double> occurrences = from.get("occurrences").as(Double.class);

    // create total query
    Subquery<Long> totalQuery = query.subquery(Long.class);
    Root<MessageSummary> totalFrom = totalQuery.from(MessageSummary.class);
    totalQuery.select(cb.sum(totalFrom.get("occurrences")));
    Path<DateTime> totalMentionTime = totalFrom.get("mentionTime");
    Path<MessageType> messageType = totalFrom.get("value");

    List<Predicate> wherePredicates = Lists.newArrayListWithCapacity(4);
    wherePredicates.add(cb.greaterThanOrEqualTo(totalMentionTime, startDateParam));
    wherePredicates.add(cb.lessThan(totalMentionTime, endDateParam));
    wherePredicates.add(cb.equal(messageType, MessageType.MESSAGE));
    if (!withBots) {
        wherePredicates.add(cb.equal(totalFrom.get("bot"), withBots));
    }
    totalQuery.where(wherePredicates.toArray(new Predicate[wherePredicates.size()]));

    // occurrences / total occurrences
    Expression<Double> ratio = cb.quot(cb.sum(occurrences), totalQuery).as(Double.class);
    Path<String> columnPath = from.get(columnName);

    query.multiselect(columnPath, ratio);
    Path<DateTime> mentionTime = from.get("mentionTime");

    wherePredicates = Lists.newArrayListWithCapacity(4);
    wherePredicates.add(cb.greaterThanOrEqualTo(mentionTime, startDateParam));
    wherePredicates.add(cb.lessThan(mentionTime, endDateParam));
    wherePredicates.add(cb.isNotNull(columnPath));
    if (!withBots) {
        wherePredicates.add(cb.equal(from.get("bot"), withBots));
    }
    query.where(wherePredicates.toArray(new Predicate[wherePredicates.size()]));

    query.groupBy(columnPath);
    query.orderBy(cb.desc(ratio));

    try {
        List<Tuple> resultList = entityManager.createQuery(query)
                                              .setMaxResults(resultSize)
                                              .setParameter(startDateParam, interval.getStart())
                                              .setParameter(endDateParam, interval.getEnd())
                                              .getResultList();

        // linked hashmap to preserve order
        Map<String, Double> result = Maps.newLinkedHashMap();
        for (Tuple tuple : resultList) {
            result.put(tuple.get(columnPath), tuple.get(ratio));
        }
        return result;
    } finally {
        closeEntityManager(entityManager);
    }
}
项目:exemplos    文件:CarroService.java   
/**
 *
 * @param carroId
 * @return
 */
public Carro buscarPorId(long carroId) {

    final CriteriaBuilder builder = this.getBuilder();

    final CriteriaQuery<Carro> criteria = builder.createQuery(Carro.class);
    final Root<Carro> root = criteria.from(Carro.class);

    final ParameterExpression<Long> parameter = builder.parameter(Long.class);

    criteria.select(root)
            .where(builder.equal(root.get("id"), parameter));

    final TypedQuery<Carro> query = this.entityManager.createQuery(criteria);

    query.setParameter(parameter, carroId);

    return query.getSingleResult();
}
项目:exemplos    文件:ProprietarioService.java   
/**
 *
 * @param proprietarioId
 * @return
 */
public Proprietario buscarPorId(long proprietarioId) {

    final CriteriaBuilder builder = this.getBuilder();

    final CriteriaQuery<Proprietario> criteria = builder.createQuery(Proprietario.class);
    final Root<Proprietario> root = criteria.from(Proprietario.class);

    final ParameterExpression<Long> parameter = builder.parameter(Long.class);

    criteria.select(root)
            .where(builder.equal(root.get("id"), parameter));

    final TypedQuery<Proprietario> query = this.entityManager.createQuery(criteria);

    query.setParameter(parameter, proprietarioId);

    return query.getSingleResult();
}
项目:hibernate-semantic-query    文件:CriteriaQueryImpl.java   
@Override
public Set<ParameterExpression<?>> getParameters() {
    return queryStructure.collectParameters();
}
项目:hibernate-semantic-query    文件:CriteriaBuilderImpl.java   
@Override
public <T> ParameterExpression<T> parameter(Class<T> paramClass) {
    final BasicTypeImpl sqmType = (BasicTypeImpl) consumerContext().getDomainMetamodel().resolveBasicType( paramClass );
    return new ParameterExpressionImpl<T>( this, sqmType, paramClass );
}
项目:hibernate-semantic-query    文件:CriteriaBuilderImpl.java   
@Override
public <T> ParameterExpression<T> parameter(Class<T> paramClass, String name) {
    final BasicTypeImpl sqmType = (BasicTypeImpl) consumerContext().getDomainMetamodel().resolveBasicType( paramClass );
    return new ParameterExpressionImpl<T>( this, sqmType, paramClass, name );
}