Search in sources :

Example 16 with Tuple

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();
    }
}
Also used : Item(org.hibernate.jpa.test.Item) EntityManager(javax.persistence.EntityManager) Tuple(javax.persistence.Tuple) NoResultException(javax.persistence.NoResultException) PersistenceException(javax.persistence.PersistenceException) Test(org.junit.Test)

Example 17 with Tuple

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());
    });
}
Also used : CriteriaBuilder(javax.persistence.criteria.CriteriaBuilder) Person(org.hibernate.userguide.model.Person) Tuple(javax.persistence.Tuple) Test(org.junit.Test)

Example 18 with Tuple

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());
    });
}
Also used : CriteriaBuilder(javax.persistence.criteria.CriteriaBuilder) Person(org.hibernate.userguide.model.Person) Tuple(javax.persistence.Tuple) Test(org.junit.Test)

Example 19 with Tuple

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);
}
Also used : SQLGrammarException(org.hibernate.exception.SQLGrammarException) PersistenceException(javax.persistence.PersistenceException) Tuple(javax.persistence.Tuple)

Example 20 with Tuple

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);
}
Also used : Tuple(javax.persistence.Tuple) Test(org.junit.Test)

Aggregations

Tuple (javax.persistence.Tuple)20 Test (org.junit.Test)17 CriteriaBuilder (javax.persistence.criteria.CriteriaBuilder)13 EntityManager (javax.persistence.EntityManager)12 AbstractMetamodelSpecificTest (org.hibernate.jpa.test.metamodel.AbstractMetamodelSpecificTest)4 Customer (org.hibernate.jpa.test.metamodel.Customer)4 TestForIssue (org.hibernate.testing.TestForIssue)3 Person (org.hibernate.userguide.model.Person)3 PersistenceException (javax.persistence.PersistenceException)2 TupleElement (javax.persistence.TupleElement)2 ArrayList (java.util.ArrayList)1 LinkedList (java.util.LinkedList)1 List (java.util.List)1 NoResultException (javax.persistence.NoResultException)1 Predicate (javax.persistence.criteria.Predicate)1 Selection (javax.persistence.criteria.Selection)1 SQLGrammarException (org.hibernate.exception.SQLGrammarException)1 CriteriaQueryTupleTransformer (org.hibernate.jpa.spi.CriteriaQueryTupleTransformer)1 Item (org.hibernate.jpa.test.Item)1 QueryImplementor (org.hibernate.query.spi.QueryImplementor)1