use of javax.persistence.Tuple in project hibernate-orm by hibernate.
the class QueryTest method testTypedScalarQueries.
@Test
public void testTypedScalarQueries() {
EntityManager em = getOrCreateEntityManager();
em.getTransaction().begin();
try {
Item item = new Item("Mouse", "Micro$oft mouse");
em.persist(item);
assertTrue(em.contains(item));
em.getTransaction().commit();
em.getTransaction().begin();
Object[] itemData = em.createQuery("select i.name,i.descr from Item i", Object[].class).getSingleResult();
assertEquals(2, itemData.length);
assertEquals(String.class, itemData[0].getClass());
assertEquals(String.class, itemData[1].getClass());
Tuple itemTuple = em.createQuery("select i.name,i.descr from Item i", Tuple.class).getSingleResult();
assertEquals(2, itemTuple.getElements().size());
assertEquals(String.class, itemTuple.get(0).getClass());
assertEquals(String.class, itemTuple.get(1).getClass());
Item itemView = em.createQuery("select new Item(i.name,i.descr) from Item i", Item.class).getSingleResult();
assertNotNull(itemView);
assertEquals("Micro$oft mouse", itemView.getDescr());
itemView = em.createNamedQuery("query-construct", Item.class).getSingleResult();
assertNotNull(itemView);
assertEquals("Micro$oft mouse", itemView.getDescr());
em.remove(item);
em.getTransaction().commit();
} catch (Exception e) {
if (em.getTransaction() != null && em.getTransaction().isActive()) {
em.getTransaction().rollback();
}
throw e;
} finally {
em.close();
}
}
use of javax.persistence.Tuple in project hibernate-orm by hibernate.
the class CriteriaTest method test_criteria_group_by_example.
@Test
public void test_criteria_group_by_example() {
doInJPA(this::entityManagerFactory, entityManager -> {
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);
}
assertEquals(2, tuples.size());
});
}
use of javax.persistence.Tuple in project hibernate-orm by hibernate.
the class CriteriaTest method test_criteria_tuple_example.
@Test
public void test_criteria_tuple_example() {
doInJPA(this::entityManagerFactory, entityManager -> {
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);
}
for (Tuple tuple : tuples) {
Long id = (Long) tuple.get(0);
String nickName = (String) tuple.get(1);
}
assertEquals(1, tuples.size());
});
}
use of javax.persistence.Tuple in project uPortal by Jasig.
the class JpaVersionDao method getSimpleVersion.
/**
* Load a Version object with direct field queries. Used to deal with DB upgrades where not all
* of the fields have been loaded
*/
private Version getSimpleVersion(String product) {
final Tuple coreNumbers;
try {
final TypedQuery<Tuple> coreNumbersQuery = this.createQuery(this.findCoreVersionNumbers);
coreNumbersQuery.setParameter(this.productParameter, product);
coreNumbers = DataAccessUtils.singleResult(coreNumbersQuery.getResultList());
} catch (SQLGrammarException e) {
logger.warn("UP_VERSION table doesn't exist, returning null for version of " + product);
return null;
}
if (coreNumbers == null) {
// Table exists but no version data for the product
return null;
}
// Pull out the maj/min/pat values
final Integer major = coreNumbers.get(VersionImpl_.major.getName(), VersionImpl_.major.getBindableJavaType());
final Integer minor = coreNumbers.get(VersionImpl_.minor.getName(), VersionImpl_.minor.getBindableJavaType());
final Integer patch = coreNumbers.get(VersionImpl_.patch.getName(), VersionImpl_.patch.getBindableJavaType());
// See if the optional local version value exists
Integer local;
try {
final TypedQuery<Integer> localNumberQuery = this.createQuery(this.findLocalVersionNumber);
localNumberQuery.setParameter(this.productParameter, product);
local = DataAccessUtils.singleResult(localNumberQuery.getResultList());
} catch (PersistenceException e) {
local = null;
}
return new VersionImpl(product, major, minor, patch, local);
}
use of javax.persistence.Tuple in project cxf by apache.
the class JPATypedQueryVisitorFiqlTest method testEqualsCriteriaQueryTuple.
@Test
public void testEqualsCriteriaQueryTuple() throws Exception {
List<Tuple> books = criteriaQueryBooksTuple("id==10");
assertEquals(1, books.size());
Tuple tuple = books.get(0);
int tupleId = tuple.get("id", Integer.class);
assertEquals(10, tupleId);
}
Aggregations