Search in sources :

Example 61 with Query

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

the class ParameterTest method testSetPropertiesMapWithNullValues.

@Test
@TestForIssue(jiraKey = "HHH-7705")
public void testSetPropertiesMapWithNullValues() throws Exception {
    Session s = openSession();
    Transaction t = s.beginTransaction();
    try {
        Human human = new Human();
        human.setNickName("nick");
        s.save(human);
        Map parameters = new HashMap();
        parameters.put("nickName", null);
        Query q = s.createQuery("from Human h where h.nickName = :nickName or (h.nickName is null and :nickName is null)");
        q.setProperties((parameters));
        assertThat(q.list().size(), is(0));
        Human human1 = new Human();
        human1.setNickName(null);
        s.save(human1);
        parameters = new HashMap();
        parameters.put("nickName", null);
        q = s.createQuery("from Human h where h.nickName = :nickName or (h.nickName is null and :nickName is null)");
        q.setProperties((parameters));
        assertThat(q.list().size(), is(1));
        Human found = (Human) q.list().get(0);
        assertThat(found.getId(), is(human1.getId()));
        parameters = new HashMap();
        parameters.put("nickName", "nick");
        q = s.createQuery("from Human h where h.nickName = :nickName or (h.nickName is null and :nickName is null)");
        q.setProperties((parameters));
        assertThat(q.list().size(), is(1));
        found = (Human) q.list().get(0);
        assertThat(found.getId(), is(human.getId()));
        s.delete(human);
        s.delete(human1);
        t.commit();
    } catch (Exception e) {
        if (session.getTransaction().getStatus() == TransactionStatus.ACTIVE) {
            session.getTransaction().rollback();
        }
        throw e;
    } finally {
        s.close();
    }
}
Also used : Transaction(org.hibernate.Transaction) Query(org.hibernate.query.Query) HashMap(java.util.HashMap) HashMap(java.util.HashMap) Map(java.util.Map) Session(org.hibernate.Session) Test(org.junit.Test) TestForIssue(org.hibernate.testing.TestForIssue)

Example 62 with Query

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

the class ScrollableTest method testScrollableResults.

@Test
@TestForIssue(jiraKey = "HHH-10860")
public void testScrollableResults() {
    final List params = new ArrayList();
    params.add(1L);
    params.add(2L);
    try (Session s = openSession()) {
        final Query query = s.createQuery("from MyEntity e where e.id in (:ids)").setParameter("ids", params).setFetchSize(10);
        try (ScrollableResults scroll = query.scroll(ScrollMode.FORWARD_ONLY)) {
            int i = 0;
            while (scroll.next()) {
                if (i == 0) {
                    assertThat(((MyEntity) scroll.get()[0]).getDescription(), is("entity_1"));
                } else {
                    assertThat(((MyEntity) scroll.get()[0]).getDescription(), is("entity_2"));
                }
                i++;
            }
        }
    }
}
Also used : Query(org.hibernate.query.Query) ArrayList(java.util.ArrayList) ArrayList(java.util.ArrayList) List(java.util.List) ScrollableResults(org.hibernate.ScrollableResults) Session(org.hibernate.Session) Test(org.junit.Test) TestForIssue(org.hibernate.testing.TestForIssue)

Example 63 with Query

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

the class UpdateEntitiesWithPackageNamesStartingWithKeywordsTest method testUpdateEntityWithPackageNameStartingWithFrom.

@Test
public void testUpdateEntityWithPackageNameStartingWithFrom() {
    In entity = new In();
    entity.setProp("1");
    try (Session session = openSession()) {
        session.getTransaction().begin();
        try {
            session.save(entity);
            session.getTransaction().commit();
        } catch (Exception e) {
            if (session.getTransaction().getStatus() == TransactionStatus.ACTIVE) {
                session.getTransaction().rollback();
            }
            throw e;
        }
    }
    try (Session session = openSession()) {
        session.getTransaction().begin();
        try {
            final Query query = session.createQuery("UPDATE In set prop = :prop WHERE id = :id ");
            query.setParameter("prop", "1");
            query.setParameter("id", entity.getId());
            query.executeUpdate();
            session.getTransaction().commit();
        } catch (Exception e) {
            if (session.getTransaction().getStatus() == TransactionStatus.ACTIVE) {
                session.getTransaction().rollback();
            }
            throw e;
        }
    }
    try (Session session = openSession()) {
        session.getTransaction().begin();
        try {
            session.createQuery("DELETE FROM In").executeUpdate();
            session.getTransaction().commit();
        } catch (Exception e) {
            if (session.getTransaction().getStatus() == TransactionStatus.ACTIVE) {
                session.getTransaction().rollback();
            }
            throw e;
        }
    }
}
Also used : Query(org.hibernate.query.Query) In(from.In) Session(org.hibernate.Session) Test(org.junit.Test)

Example 64 with Query

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

the class UpdateEntitiesWithPackageNamesStartingWithKeywordsTest method testUpdateEntityWithPackageNameStartingWithIn.

@Test
public void testUpdateEntityWithPackageNameStartingWithIn() {
    Any entity = new Any();
    entity.setProp("1");
    try (Session session = openSession()) {
        session.getTransaction().begin();
        try {
            session.save(entity);
            session.getTransaction().commit();
        } catch (Exception e) {
            if (session.getTransaction().getStatus() == TransactionStatus.ACTIVE) {
                session.getTransaction().rollback();
            }
            throw e;
        }
    }
    try (Session session = openSession()) {
        session.getTransaction().begin();
        try {
            final Query query = session.createQuery("UPDATE Any set prop = :prop WHERE id = :id ");
            query.setParameter("prop", "1");
            query.setParameter("id", entity.getId());
            query.executeUpdate();
            session.getTransaction().commit();
        } catch (Exception e) {
            if (session.getTransaction().getStatus() == TransactionStatus.ACTIVE) {
                session.getTransaction().rollback();
            }
            throw e;
        }
    }
    try (Session session = openSession()) {
        session.getTransaction().begin();
        try {
            session.createQuery("DELETE FROM Any").executeUpdate();
            session.getTransaction().commit();
        } catch (Exception e) {
            if (session.getTransaction().getStatus() == TransactionStatus.ACTIVE) {
                session.getTransaction().rollback();
            }
            throw e;
        }
    }
}
Also used : Query(org.hibernate.query.Query) Any(in.from.Any) Session(org.hibernate.Session) Test(org.junit.Test)

Example 65 with Query

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

the class LongStringTest method testUsingLobPropertyInHqlQuery.

@Test
@SkipForDialect(Oracle8iDialect.class)
@TestForIssue(jiraKey = "HHH-11477")
public void testUsingLobPropertyInHqlQuery() {
    TransactionUtil.doInHibernate(this::sessionFactory, session -> {
        LongStringHolder entity = new LongStringHolder();
        entity.setLongString(original);
        session.save(entity);
    });
    TransactionUtil.doInHibernate(this::sessionFactory, session -> {
        final Query query = session.createQuery("from LongStringHolder where longString = :stringValue");
        query.setParameter("stringValue", original);
        final List<LongStringHolder> results = query.list();
        assertThat(results.size(), is(1));
        assertThat(results.get(0).getLongString(), is(original));
    });
}
Also used : Query(org.hibernate.query.Query) SkipForDialect(org.hibernate.testing.SkipForDialect) Test(org.junit.Test) TestForIssue(org.hibernate.testing.TestForIssue)

Aggregations

Query (org.hibernate.query.Query)149 Test (org.junit.Test)46 Session (org.hibernate.Session)39 List (java.util.List)24 ArrayList (java.util.ArrayList)19 TestForIssue (org.hibernate.testing.TestForIssue)19 ObjectQuery (com.evolveum.midpoint.prism.query.ObjectQuery)17 CriteriaQuery (javax.persistence.criteria.CriteriaQuery)17 HashMap (java.util.HashMap)15 Map (java.util.Map)14 NativeQuery (org.hibernate.query.NativeQuery)14 AbstractJPATest (org.hibernate.test.jpa.AbstractJPATest)11 SessionFactory (org.hibernate.SessionFactory)9 OperationResult (com.evolveum.midpoint.schema.result.OperationResult)7 SQLException (java.sql.SQLException)7 Collectors (java.util.stream.Collectors)7 RQuery (com.evolveum.midpoint.repo.sql.query.RQuery)6 CriteriaBuilder (javax.persistence.criteria.CriteriaBuilder)6 Predicate (javax.persistence.criteria.Predicate)6 Root (javax.persistence.criteria.Root)6