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();
}
}
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++;
}
}
}
}
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;
}
}
}
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;
}
}
}
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));
});
}
Aggregations