use of org.hibernate.jpa.test.metamodel.Customer in project hibernate-orm by hibernate.
the class QueryBuilderTest method testFunctionDialectFunctions.
@Test
public void testFunctionDialectFunctions() {
EntityManager em = getOrCreateEntityManager();
em.getTransaction().begin();
CriteriaBuilderImpl cb = (CriteriaBuilderImpl) em.getCriteriaBuilder();
CriteriaQuery<Long> criteria = cb.createQuery(Long.class);
criteria.select(cb.count(cb.literal(1)));
Root<Customer> root = criteria.from(Customer.class);
criteria.where(cb.equal(cb.function("substring", String.class, root.get(Customer_.name), cb.literal(1), cb.literal(1)), cb.literal("a")));
em.createQuery(criteria).getResultList();
em.getTransaction().commit();
em.close();
}
use of org.hibernate.jpa.test.metamodel.Customer in project hibernate-orm by hibernate.
the class UncorrelatedSubqueryTest method testLessThan.
@Test
public void testLessThan() {
CriteriaBuilder builder = entityManagerFactory().getCriteriaBuilder();
EntityManager em = getOrCreateEntityManager();
em.getTransaction().begin();
CriteriaQuery<Customer> criteria = builder.createQuery(Customer.class);
Root<Customer> customerRoot = criteria.from(Customer.class);
Subquery<Double> subCriteria = criteria.subquery(Double.class);
Root<Customer> subQueryCustomerRoot = subCriteria.from(Customer.class);
subCriteria.select(builder.avg(subQueryCustomerRoot.get(Customer_.age)));
criteria.where(builder.lessThan(customerRoot.get(Customer_.age), subCriteria.getSelection().as(Integer.class)));
em.createQuery(criteria).getResultList();
em.getTransaction().commit();
em.close();
}
use of org.hibernate.jpa.test.metamodel.Customer in project hibernate-orm by hibernate.
the class TupleCriteriaTest method testArray.
@Test
public void testArray() {
EntityManager em = entityManagerFactory().createEntityManager();
em.getTransaction().begin();
Customer c1 = new Customer();
c1.setId("c1");
c1.setAge(18);
c1.setName("Bob");
em.persist(c1);
em.getTransaction().commit();
em.close();
em = entityManagerFactory().createEntityManager();
em.getTransaction().begin();
final CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Object[]> q = cb.createQuery(Object[].class);
Root<Customer> c = q.from(Customer.class);
q.select(cb.array(c.get(Customer_.name), c.get(Customer_.age)));
List<Object[]> result = em.createQuery(q).getResultList();
assertEquals(1, result.size());
assertEquals(c1.getName(), result.get(0)[0]);
assertEquals(c1.getAge(), result.get(0)[1]);
em.getTransaction().commit();
em.close();
em = entityManagerFactory().createEntityManager();
em.getTransaction().begin();
em.createQuery("delete Customer").executeUpdate();
em.getTransaction().commit();
em.close();
}
use of org.hibernate.jpa.test.metamodel.Customer in project hibernate-orm by hibernate.
the class TupleCriteriaTest method testIllegalArgumentExceptionBuildingSelectArrayWithSameAliases.
@Test
public void testIllegalArgumentExceptionBuildingSelectArrayWithSameAliases() {
EntityManager em = entityManagerFactory().createEntityManager();
em.getTransaction().begin();
final CriteriaBuilder builder = em.getCriteriaBuilder();
CriteriaQuery criteria = builder.createQuery();
Root<Customer> customerRoot = criteria.from(Customer.class);
Path<String> namePath = customerRoot.get(Customer_.name);
Path<Integer> agePath = customerRoot.get(Customer_.age);
try {
CompoundSelection<Object[]> c = builder.array(namePath.alias("SAME"), agePath.alias("SAME"));
criteria.select(c);
fail("Attempt to define multi-select with same aliases should have thrown IllegalArgumentException");
} catch (IllegalArgumentException expected) {
}
em.getTransaction().commit();
em.close();
}
use of org.hibernate.jpa.test.metamodel.Customer in project hibernate-orm by hibernate.
the class TupleCriteriaTest method testInvalidTupleIndexAccess.
@Test
public void testInvalidTupleIndexAccess() {
EntityManager em = entityManagerFactory().createEntityManager();
em.getTransaction().begin();
Customer c1 = new Customer();
c1.setId("c1");
c1.setAge(18);
c1.setName("Bob");
em.persist(c1);
em.getTransaction().commit();
em.close();
// the actual assertion block
em = entityManagerFactory().createEntityManager();
em.getTransaction().begin();
final CriteriaBuilder builder = em.getCriteriaBuilder();
CriteriaQuery<Tuple> criteria = builder.createTupleQuery();
Root<Customer> customerRoot = criteria.from(Customer.class);
criteria.multiselect(customerRoot.get(Customer_.name), customerRoot.get(Customer_.age));
List<Tuple> results = em.createQuery(criteria).getResultList();
assertEquals(1, results.size());
Tuple tuple = results.get(0);
try {
tuple.get(99);
fail("99 is invalid index");
} catch (IllegalArgumentException expected) {
}
try {
tuple.get(99, String.class);
fail("99 is invalid index");
} catch (IllegalArgumentException expected) {
}
tuple.get(0, String.class);
tuple.get(1, Integer.class);
try {
tuple.get(0, java.util.Date.class);
fail("Date is invalid type");
} catch (IllegalArgumentException expected) {
}
em.getTransaction().commit();
em.close();
em = entityManagerFactory().createEntityManager();
em.getTransaction().begin();
em.createQuery("delete Customer").executeUpdate();
em.getTransaction().commit();
em.close();
}
Aggregations