use of javax.persistence.EntityManager in project hibernate-orm by hibernate.
the class ParameterTest method testPrimitiveArrayParameterBinding.
@Test
public void testPrimitiveArrayParameterBinding() {
EntityManager em = getOrCreateEntityManager();
em.getTransaction().begin();
CriteriaQuery<MultiTypedBasicAttributesEntity> criteria = em.getCriteriaBuilder().createQuery(MultiTypedBasicAttributesEntity.class);
Root<MultiTypedBasicAttributesEntity> rootEntity = criteria.from(MultiTypedBasicAttributesEntity.class);
Path<byte[]> someBytesPath = rootEntity.get(MultiTypedBasicAttributesEntity_.someBytes);
ParameterExpression<byte[]> param = em.getCriteriaBuilder().parameter(byte[].class, "theBytes");
criteria.where(em.getCriteriaBuilder().equal(someBytesPath, param));
TypedQuery<MultiTypedBasicAttributesEntity> query = em.createQuery(criteria);
query.setParameter(param, new byte[] { 1, 1, 1 });
assertThat(query.getParameterValue(param.getName()), instanceOf(byte[].class));
query.getResultList();
em.getTransaction().commit();
em.close();
}
use of javax.persistence.EntityManager in project hibernate-orm by hibernate.
the class QueryBuilderTest method testEqualityComparisonEntityConversion.
@Test
public void testEqualityComparisonEntityConversion() {
EntityManager em = getOrCreateEntityManager();
em.getTransaction().begin();
Address address = new Address("Street Id", "Fake Street", "Fake City", "Fake State", "Fake Zip");
Phone phone1 = new Phone("1", "555", "0001", address);
Phone phone2 = new Phone("2", "555", "0002", address);
Phone phone3 = new Phone("3", "555", "0003", address);
Phone phone4 = new Phone("4", "555", "0004");
List<Phone> phones = new ArrayList<Phone>(3);
phones.add(phone1);
phones.add(phone2);
phones.add(phone3);
address.setPhones(phones);
em.persist(address);
em.persist(phone4);
em.getTransaction().commit();
em.getTransaction().begin();
CriteriaBuilderImpl cb = (CriteriaBuilderImpl) em.getCriteriaBuilder();
MetamodelImpl mm = (MetamodelImpl) em.getMetamodel();
EntityType<Phone> Phone_ = mm.entity(Phone.class);
CriteriaQuery<Phone> cquery = cb.createQuery(Phone.class);
Root<Phone> phone = cquery.from(Phone.class);
ComparisonPredicate predicate = (ComparisonPredicate) cb.equal(phone.get(Phone_.getSingularAttribute("address", Address.class)), address);
cquery.where(predicate);
List<Phone> results = em.createQuery(cquery).getResultList();
assertEquals(3, results.size());
em.getTransaction().commit();
em.close();
}
use of javax.persistence.EntityManager in project hibernate-orm by hibernate.
the class QueryBuilderTest method testMultiselectWithPredicates.
@Test
@TestForIssue(jiraKey = "HHH-8699")
// For now, restrict to H2. Selecting w/ predicate functions cause issues for too many dialects.
@RequiresDialect(value = H2Dialect.class, jiraKey = "HHH-9092")
public void testMultiselectWithPredicates() {
EntityManager em = getOrCreateEntityManager();
em.getTransaction().begin();
CriteriaBuilderImpl cb = (CriteriaBuilderImpl) em.getCriteriaBuilder();
CriteriaQuery<Customer> cq = cb.createQuery(Customer.class);
Root<Customer> r = cq.from(Customer.class);
cq.multiselect(r.get(Customer_.id), r.get(Customer_.name), cb.concat("Hello ", r.get(Customer_.name)), cb.isNotNull(r.get(Customer_.age)));
TypedQuery<Customer> tq = em.createQuery(cq);
tq.getResultList();
em.getTransaction().commit();
em.close();
}
use of javax.persistence.EntityManager in project hibernate-orm by hibernate.
the class QueryBuilderTest method testTypeConversion.
@Test
public void testTypeConversion() {
EntityManager em = getOrCreateEntityManager();
em.getTransaction().begin();
CriteriaBuilderImpl cb = (CriteriaBuilderImpl) em.getCriteriaBuilder();
MetamodelImpl mm = (MetamodelImpl) em.getMetamodel();
EntityType<Product> Product_ = mm.entity(Product.class);
// toFloat
CriteriaQuery<Float> floatQuery = cb.createQuery(Float.class);
Root<Product> product = floatQuery.from(Product.class);
floatQuery.select(cb.toFloat(product.get(Product_.getSingularAttribute("quantity", Integer.class))));
em.createQuery(floatQuery).getResultList();
// toDouble
CriteriaQuery<Double> doubleQuery = cb.createQuery(Double.class);
product = doubleQuery.from(Product.class);
doubleQuery.select(cb.toDouble(product.get(Product_.getSingularAttribute("quantity", Integer.class))));
em.createQuery(doubleQuery).getResultList();
em.getTransaction().commit();
em.close();
}
use of javax.persistence.EntityManager in project hibernate-orm by hibernate.
the class TreatKeywordTest method basicTest2.
@Test
public void basicTest2() {
EntityManager em = getOrCreateEntityManager();
CriteriaBuilder builder = em.getCriteriaBuilder();
CriteriaQuery<Animal> criteria = builder.createQuery(Animal.class);
Root<Animal> root = criteria.from(Animal.class);
criteria.select(root);
criteria.where(builder.equal(builder.treat(root, Human.class).get("name"), "2"));
em.createQuery(criteria).getResultList();
em.close();
}
Aggregations