javax.persistence.Tuple类的使用及代码示例

x33g5p2x  于2022-01-29 转载在 其他  
字(9.2k)|赞(0)|评价(0)|浏览(133)

本文整理了Java中javax.persistence.Tuple类的一些代码示例,展示了Tuple类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Tuple类的具体详情如下:
包路径:javax.persistence.Tuple
类名称:Tuple

Tuple介绍

[英]Interface for extracting the elements of a query result tuple.
[中]用于提取查询结果元组元素的接口。

代码示例

代码示例来源:origin: hibernate/hibernate-orm

@Test
public void test_criteria_tuple_example() {
  doInJPA( this::entityManagerFactory, entityManager -> {
    //tag::criteria-tuple-example[]
    CriteriaBuilder builder = entityManager.getCriteriaBuilder();
    CriteriaQuery<Tuple> criteria = builder.createQuery( Tuple.class );
    Root<Person> root = criteria.from( Person.class );
    Path<Long> idPath = root.get( Person_.id );
    Path<String> nickNamePath = root.get( Person_.nickName);
    criteria.multiselect( idPath, nickNamePath );
    criteria.where( builder.equal( root.get( Person_.name ), "John Doe" ) );
    List<Tuple> tuples = entityManager.createQuery( criteria ).getResultList();
    for ( Tuple tuple : tuples ) {
      Long id = tuple.get( idPath );
      String nickName = tuple.get( nickNamePath );
    }
    //or using indices
    for ( Tuple tuple : tuples ) {
      Long id = (Long) tuple.get( 0 );
      String nickName = (String) tuple.get( 1 );
    }
    //end::criteria-tuple-example[]
    assertEquals(1, tuples.size());
  });
}

代码示例来源:origin: spring-projects/spring-data-jpa

@Override
  public Set<Entry<String, Object>> entrySet() {
    return tuple.getElements().stream() //
        .map(e -> new HashMap.SimpleEntry<String, Object>(e.getAlias(), tuple.get(e))) //
        .collect(Collectors.toSet());
  }
}

代码示例来源:origin: spring-projects/spring-data-jpa

@Override
public Collection<Object> values() {
  return Arrays.asList(tuple.toArray());
}

代码示例来源:origin: stackoverflow.com

CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Tuple> cq= cb.createTupleQuery();

Root<Documents> root = cq.from(Documents.class);
Expression<Integer> userId = root.get("USERID");
Expression<String> userType = root.get("USERTYPE");
Expression<Long> count = cb.count(userId);

cq.multiselect(userId.alias("USERID"), count.alias("CNT"));
cq.where(cb.equal(userType, "COMPANY");
cq.groupBy(userId);
cq.orderBy(cb.desc(count));

TypedQuery<Tuple> tq = em.createQuery(cq);
for (Tuple t : tq.getResultsList()) {
 System.out.println(t.get("USERID"));
 System.out.println(t.get("CNT"));
}

代码示例来源:origin: hibernate/hibernate-orm

@Test
public void test_criteria_group_by_example() {
  doInJPA( this::entityManagerFactory, entityManager -> {
    //tag::criteria-group-by-example[]
    CriteriaBuilder builder = entityManager.getCriteriaBuilder();
    CriteriaQuery<Tuple> criteria = builder.createQuery( Tuple.class );
    Root<Person> root = criteria.from( Person.class );
    criteria.groupBy(root.get("address"));
    criteria.multiselect(root.get("address"), builder.count(root));
    List<Tuple> tuples = entityManager.createQuery( criteria ).getResultList();
    for ( Tuple tuple : tuples ) {
      String name = (String) tuple.get( 0 );
      Long count = (Long) tuple.get( 1 );
    }
    //end::criteria-group-by-example[]
    assertEquals(2, tuples.size());
  });
}

代码示例来源:origin: stackoverflow.com

CriteriaQuery<Tuple> cq = builder.createTupleQuery();
// write the Root, Path elements as usual
Root<EntityClazz> root = cq.from(EntityClazz.class);
cq.multiselect(root.get(EntityClazz_.ID), root.get(EntityClazz_.VERSION));  //using metamodel
List<Tuple> tupleResult = em.createQuery(cq).getResultList();
for (Tuple t : tupleResult) {
  Long id = (Long) t.get(0);
  Long version = (Long) t.get(1);
}

代码示例来源:origin: jamesagnew/hapi-fhir

private void findMatchingTagIds(String theResourceName, IIdType theResourceId, Set<Long> tagIds, Class<? extends BaseTag> entityClass) {
  {
    CriteriaBuilder builder = myEntityManager.getCriteriaBuilder();
    CriteriaQuery<Tuple> cq = builder.createTupleQuery();
    Root<? extends BaseTag> from = cq.from(entityClass);
    cq.multiselect(from.get("myTagId").as(Long.class)).distinct(true);
    if (theResourceName != null) {
      Predicate typePredicate = builder.equal(from.get("myResourceType"), theResourceName);
      if (theResourceId != null) {
        cq.where(typePredicate, builder.equal(from.get("myResourceId"), myIdHelperService.translateForcedIdToPid(theResourceName, theResourceId.getIdPart())));
      } else {
        cq.where(typePredicate);
      }
    }
    TypedQuery<Tuple> query = myEntityManager.createQuery(cq);
    for (Tuple next : query.getResultList()) {
      tagIds.add(next.get(0, Long.class));
    }
  }
}

代码示例来源:origin: stackoverflow.com

CriteriaBuilder cb = em.getCriteriaBuilder();
     CriteriaQuery<Tuple> q = cb.createTupleQuery();
     Root<Test> c = q.from(Test.class);
     q.multiselect(c.get("type"), cb.count(c));
     q.groupBy(c.get("type"));
     TypedQuery<Tuple> t = em.createQuery(q);
     List<Tuple> resultList = t.getResultList();
     for(Tuple tuple : resultList){
       logger.info(tuple.get(0) + "   " + tuple.get(1));
     }

代码示例来源:origin: kiegroup/jbpm

CriteriaQuery<Tuple> criteriaQuery = builder.createTupleQuery();
    tupleRow.get(i++, Long.class),
    tupleRow.get(i++, String.class), tupleRow.get(i++, String.class), tupleRow.get(i++, String.class),
    tupleRow.get(i++, Status.class), tupleRow.get(i++, Integer.class), tupleRow.get(i++, Boolean.class),
    tupleRow.get(i++, String.class), tupleRow.get(i++, String.class),
    tupleRow.get(i++, Date.class), tupleRow.get(i++, Date.class), tupleRow.get(i++, Date.class),
    tupleRow.get(i++, String.class), tupleRow.get(i++, Long.class), tupleRow.get(i++, Long.class), tupleRow.get(i++, String.class),
    tupleRow.get(i++, SubTasksStrategy.class),
    tupleRow.get(i++, Long.class) );

代码示例来源:origin: stackoverflow.com

CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Tuple> cq = cb.createTupleQuery();
Root<ObjectMetadata> root = cq.from(ObjectMetadata.class);
cq.multiselect(
  root.get("fileName").alias("filename"), 
  cb.greatest(root.<Date>get("lastModified").alias("lastmodified")
);
cq.groupBy(root.get("fileName"));

List<Tuple> result = em.createQuery(cq).getResultList()
for (Tuple t: result) {
  System.out.println(t.get("filename") + " " + t.get("lastmodified"));
}

代码示例来源:origin: spring-projects/spring-data-jpa

@Override
public int size() {
  return tuple.getElements().size();
}

代码示例来源:origin: spring-projects/spring-data-jpa

/**
 * If the key is not a {@code String} or not a key of the backing {@link Tuple} this returns {@code false}.
 * Otherwise this returns {@code true} even when the value from the backing {@code Tuple} is {@code null}.
 *
 * @param key the key for which to get the value from the map.
 * @return wether the key is an element of the backing tuple.
 */
@Override
public boolean containsKey(Object key) {
  try {
    tuple.get((String) key);
    return true;
  } catch (IllegalArgumentException e) {
    return false;
  }
}

代码示例来源:origin: spring-projects/spring-data-jpa

@Override
public boolean isEmpty() {
  return tuple.getElements().isEmpty();
}

代码示例来源:origin: spring-projects/spring-data-jpa

/**
 * If the key is not a {@code String} or not a key of the backing {@link Tuple} this returns {@code null}.
 * Otherwise the value from the backing {@code Tuple} is returned, which also might be {@code null}.
 *
 * @param key the key for which to get the value from the map.
 * @return the value of the backing {@link Tuple} for that key or {@code null}.
 */
@Override
@Nullable
public Object get(Object key) {
  if (!(key instanceof String)) {
    return null;
  }
  try {
    return tuple.get((String) key);
  } catch (IllegalArgumentException e) {
    return null;
  }
}

代码示例来源:origin: spring-projects/spring-data-jpa

@Override
public Object convert(Object source) {
  if (!(source instanceof Tuple)) {
    return source;
  }
  Tuple tuple = (Tuple) source;
  List<TupleElement<?>> elements = tuple.getElements();
  if (elements.size() == 1) {
    Object value = tuple.get(elements.get(0));
    if (type.isInstance(value) || value == null) {
      return value;
    }
  }
  return new TupleBackedMap(tuple);
}

代码示例来源:origin: spring-projects/spring-data-jpa

@Override
public Set<String> keySet() {
  return tuple.getElements().stream() //
      .map(TupleElement::getAlias) //
      .collect(Collectors.toSet());
}

代码示例来源:origin: spring-projects/spring-data-jpa

@Override
public boolean containsValue(Object value) {
  return Arrays.asList(tuple.toArray()).contains(value);
}

代码示例来源:origin: hibernate/hibernate-orm

@Test
public void testHibernateSelectClauseFunction() {
  doInJPA( this::entityManagerFactory, entityManager -> {
    //tag::hql-user-defined-function-postgresql-select-clause-example[]
    List<Tuple> books = entityManager.createQuery(
      "select b.title as title, apply_vat(b.priceCents) as price " +
      "from Book b " +
      "where b.author = :author ", Tuple.class )
    .setParameter( "author", "Vlad Mihalcea" )
    .getResultList();
    assertEquals( 1, books.size() );
    Tuple book = books.get( 0 );
    assertEquals( "High-Performance Java Persistence", book.get( "title" ) );
    assertEquals( 5400, ((Number) book.get( "price" )).intValue() );
    //end::hql-user-defined-function-postgresql-select-clause-example[]
  });
}

代码示例来源:origin: hibernate/hibernate-orm

private static Map<Integer, Integer> buildColumnSizesFromRows(List<Tuple> rows) {
  Map<Integer, Integer> columnSizes = new TreeMap<>();
  for ( int i = 0; i < rows.size(); ++i ) {
    Tuple row = rows.get( i );
    // on first row, handle columns
    if ( i == 0 ) {
      for ( int j = 0; j < row.getElements().size(); ++j ) {
        TupleElement<?> element = row.getElements().get( j );
        columnSizes.put( j, element.getAlias().length() );
      }
    }
    // handle values
    for ( int j = 0; j < row.getElements().size(); ++j ) {
      Object value = row.get( j );
      int length = ( "" + value ).trim().length();
      if ( length > columnSizes.get( j ) ) {
        columnSizes.put( j, length );
      }
    }
  }
  return columnSizes;
}

代码示例来源:origin: org.springframework.data/spring-data-jpa

@Override
public int size() {
  return tuple.getElements().size();
}

相关文章

微信公众号

最新文章

更多