Search in sources :

Example 96 with Query

use of org.hibernate.Query in project hibernate-orm by hibernate.

the class ASTParserLoadingTest method testRowValueConstructorSyntaxInInList.

@Test
public void testRowValueConstructorSyntaxInInList() {
    Session s = openSession();
    s.beginTransaction();
    Product product = new Product();
    product.setDescription("My Product");
    product.setNumberAvailable(10);
    product.setPrice(new BigDecimal(123));
    product.setProductId("4321");
    s.save(product);
    Customer customer = new Customer();
    customer.setCustomerId("123456789");
    customer.setName("My customer");
    customer.setAddress("somewhere");
    s.save(customer);
    Order order = customer.generateNewOrder(new BigDecimal(1234));
    s.save(order);
    LineItem li = order.generateLineItem(product, 5);
    s.save(li);
    product = new Product();
    product.setDescription("My Product");
    product.setNumberAvailable(10);
    product.setPrice(new BigDecimal(123));
    product.setProductId("1234");
    s.save(product);
    li = order.generateLineItem(product, 10);
    s.save(li);
    s.flush();
    Query query = s.createQuery("from LineItem l where l.id in (:idList)");
    List<Id> list = new ArrayList<Id>();
    list.add(new Id("123456789", order.getId().getOrderNumber(), "4321"));
    list.add(new Id("123456789", order.getId().getOrderNumber(), "1234"));
    query.setParameterList("idList", list);
    assertEquals(2, query.list().size());
    query = s.createQuery("from LineItem l where l.id in :idList");
    query.setParameterList("idList", list);
    assertEquals(2, query.list().size());
    s.getTransaction().rollback();
    s.close();
}
Also used : Order(org.hibernate.test.cid.Order) Query(org.hibernate.Query) Customer(org.hibernate.test.cid.Customer) ArrayList(java.util.ArrayList) Product(org.hibernate.test.cid.Product) LineItem(org.hibernate.test.cid.LineItem) Id(org.hibernate.test.cid.LineItem.Id) BigDecimal(java.math.BigDecimal) Session(org.hibernate.Session) Test(org.junit.Test)

Example 97 with Query

use of org.hibernate.Query in project hibernate-orm by hibernate.

the class ASTParserLoadingTest method testParameterTypeMismatch.

@Test
@FailureExpected(jiraKey = "unknown")
public void testParameterTypeMismatch() {
    Session s = openSession();
    s.beginTransaction();
    Query query = s.createQuery("from Animal a where a.description = :nonstring").setParameter("nonstring", Integer.valueOf(1));
    try {
        query.list();
        fail("query execution should have failed");
    } catch (IllegalArgumentException e) {
        assertTyping(TypeMismatchException.class, e.getCause());
    } catch (TypeMismatchException tme) {
    // expected behavior
    }
    s.getTransaction().commit();
    s.close();
}
Also used : Query(org.hibernate.Query) TypeMismatchException(org.hibernate.TypeMismatchException) Session(org.hibernate.Session) Test(org.junit.Test) FailureExpected(org.hibernate.testing.FailureExpected)

Example 98 with Query

use of org.hibernate.Query in project hibernate-orm by hibernate.

the class IdentifierPropertyReferencesTest method testHqlIdPropertyReferences.

@Test
public void testHqlIdPropertyReferences() {
    Session s = openSession();
    s.beginTransaction();
    Person p = new Person(new Long(1), "steve", 123);
    s.save(p);
    Order o = new Order(new Long(1), p);
    LineItem l = new LineItem(o, "my-product", 2);
    l.setId("456");
    s.save(o);
    s.getTransaction().commit();
    s.close();
    s = openSession();
    s.beginTransaction();
    long count = extractCount(s, "select count(*) from Person p where p.id = 123");
    assertEquals("Person by id prop (non-identifier)", 1, count);
    count = extractCount(s, "select count(*) from Person p where p.pk = 1");
    assertEquals("Person by pk prop (identifier)", 1, count);
    count = extractCount(s, "select count(*) from Order o where o.id = 1");
    assertEquals("Order by number prop (named identifier)", 1, count);
    count = extractCount(s, "select count(*) from Order o where o.number = 1");
    assertEquals("Order by id prop (virtual identifier)", 1, count);
    count = extractCount(s, "select count(*) from LineItem l where l.id = '456'");
    assertEquals("LineItem by id prop (non-identifier", 1, count);
    if (getDialect().supportsRowValueConstructorSyntax()) {
        Query q = s.createQuery("select count(*) from LineItem l where l.pk = (:order, :product)").setEntity("order", o).setString("product", "my-product");
        count = extractCount(q);
        assertEquals("LineItem by pk prop (named composite identifier", 1, count);
    }
    count = extractCount(s, "select count(*) from Order o where o.orderee.id = 1");
    assertEquals(0, count);
    count = extractCount(s, "select count(*) from Order o where o.orderee.pk = 1");
    assertEquals(1, count);
    count = extractCount(s, "select count(*) from Order o where o.orderee.id = 123");
    assertEquals(1, count);
    count = extractCount(s, "select count(*) from LineItem l where l.pk.order.id = 1");
    assertEquals(1, count);
    count = extractCount(s, "select count(*) from LineItem l where l.pk.order.number = 1");
    assertEquals(1, count);
    count = extractCount(s, "select count(*) from LineItem l where l.pk.order.orderee.pk = 1");
    assertEquals(1, count);
    s.delete(o);
    s.delete(p);
    s.getTransaction().commit();
    s.close();
}
Also used : Query(org.hibernate.Query) Session(org.hibernate.Session) Test(org.junit.Test)

Example 99 with Query

use of org.hibernate.Query in project hibernate-orm by hibernate.

the class CharacterArrayIdTest method testMultipleDeletions.

/**
	 * Removes two records from database.
	 */
@Test
@TestForIssue(jiraKey = "HHH-8999")
public void testMultipleDeletions() {
    Session s = openSession();
    s.getTransaction().begin();
    Query query = s.createQuery("SELECT s FROM CharacterArrayIdTest$DemoEntity s");
    List results = query.list();
    s.delete(results.get(0));
    s.delete(results.get(1));
    s.getTransaction().commit();
    s.close();
    s = openSession();
    s.getTransaction().begin();
    query = s.createQuery("SELECT s FROM CharacterArrayIdTest$DemoEntity s");
    assertEquals(1, query.list().size());
    s.getTransaction().commit();
    s.close();
}
Also used : Query(org.hibernate.Query) List(java.util.List) Session(org.hibernate.Session) Test(org.junit.Test) TestForIssue(org.hibernate.testing.TestForIssue)

Example 100 with Query

use of org.hibernate.Query in project hibernate-orm by hibernate.

the class PrimitiveByteArrayIdTest method testMultipleUpdates.

/**
	 * Updates two records from database.
	 */
@Test
@TestForIssue(jiraKey = "HHH-8999")
public void testMultipleUpdates() {
    Session s = openSession();
    s.getTransaction().begin();
    Query query = s.createQuery("SELECT s FROM PrimitiveByteArrayIdTest$DemoEntity s");
    List<DemoEntity> results = (List<DemoEntity>) query.list();
    results.get(0).name = "Different 0";
    results.get(1).name = "Different 1";
    final String lastResultName = results.get(0).name;
    s.getTransaction().commit();
    s.close();
    s = openSession();
    s.getTransaction().begin();
    query = s.createQuery("SELECT s FROM PrimitiveByteArrayIdTest$DemoEntity s");
    results = (List<DemoEntity>) query.list();
    final Set<String> names = new HashSet<String>();
    for (DemoEntity entity : results) {
        names.add(entity.name);
    }
    assertTrue(names.contains("Different 0"));
    assertTrue(names.contains("Different 1"));
    assertTrue(names.contains(lastResultName));
    s.getTransaction().commit();
    s.close();
}
Also used : Query(org.hibernate.Query) List(java.util.List) Session(org.hibernate.Session) HashSet(java.util.HashSet) Test(org.junit.Test) TestForIssue(org.hibernate.testing.TestForIssue)

Aggregations

Query (org.hibernate.Query)481 Session (org.hibernate.Session)223 Test (org.junit.Test)184 List (java.util.List)85 Transaction (org.hibernate.Transaction)80 ArrayList (java.util.ArrayList)52 ObjectQuery (com.evolveum.midpoint.prism.query.ObjectQuery)31 TestForIssue (org.hibernate.testing.TestForIssue)28 SQLQuery (org.hibernate.SQLQuery)27 MifosRuntimeException (org.mifos.core.MifosRuntimeException)24 PersistenceException (org.mifos.framework.exceptions.PersistenceException)22 HibernateException (org.hibernate.HibernateException)19 Collection (java.util.Collection)14 Date (java.util.Date)14 HashMap (java.util.HashMap)12 Iterator (java.util.Iterator)12 BigDecimal (java.math.BigDecimal)11 Map (java.util.Map)11 HibernateSearchException (org.mifos.framework.exceptions.HibernateSearchException)11 OperationResult (com.evolveum.midpoint.schema.result.OperationResult)10