@Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = "ISPN014806: No parameters named '\\[param2\\]' were found") public void testUnknownParamWithParameterMap() { QueryFactory qf = getQueryFactory(); Query q = qf.from(getModelFactory().getUserImplClass()) .having("name").eq(param("param1")) .build(); Map<String, Object> parameterMap = new HashMap<>(1); parameterMap.put("param2", User.Gender.MALE); q.setParameters(parameterMap); }
@Test(expectedExceptions = IllegalStateException.class, expectedExceptionsMessageRegExp = "ISPN014825: Query parameter 'param2' was not set") public void testMissingParamWithParameterMap() { QueryFactory qf = getQueryFactory(); Query q = qf.from(getModelFactory().getUserImplClass()) .having("name").eq(param("param1")) .and().having("gender").eq(param("param2")) .build(); Map<String, Object> parameterMap = new HashMap<>(1); parameterMap.put("param1", "John"); q.setParameters(parameterMap); q.list(); }
@Test(expectedExceptions = IllegalStateException.class, expectedExceptionsMessageRegExp = "ISPN014825: Query parameter 'param2' was not set") public void testMissingParam() { QueryFactory qf = getQueryFactory(); Query q = qf.from(getModelFactory().getUserImplClass()) .having("name").eq(param("param1")) .and().having("gender").eq(param("param2")) .build(); q.setParameter("param1", "John"); q.list(); }
public void testWithParameterMap() { QueryFactory qf = getQueryFactory(); Query q = qf.from(getModelFactory().getUserImplClass()) .having("gender").eq(param("param1")) .and() .having("name").eq(param("param2")) .build(); Map<String, Object> parameterMap = new HashMap<>(2); parameterMap.put("param1", User.Gender.MALE); parameterMap.put("param2", "John"); q.setParameters(parameterMap); List<User> list = q.list(); assertEquals(1, list.size()); assertEquals(User.Gender.MALE, list.get(0).getGender()); assertEquals("John", list.get(0).getName()); parameterMap = new HashMap<>(2); parameterMap.put("param1", User.Gender.MALE); parameterMap.put("param2", "Spider"); q.setParameters(parameterMap); list = q.list(); assertEquals(1, list.size()); assertEquals(User.Gender.MALE, list.get(0).getGender()); assertEquals("Spider", list.get(0).getName()); }
@Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = "ISPN014805: No parameter named 'param2' was found") public void testUnknownParam() { QueryFactory qf = getQueryFactory(); Query q = qf.from(getModelFactory().getUserImplClass()) .having("name").eq(param("param1")) .build(); q.setParameter("param2", "John"); }
@Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = "ISPN014803: Parameter name cannot be null or empty") public void testNullParamName() { QueryFactory qf = getQueryFactory(); Query q = qf.from(getModelFactory().getUserImplClass()) .having("name").eq(param(null)) .build(); q.setParameter(null, "John"); }
@Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = "ISPN014803: Parameter name cannot be null or empty") public void testEmptyParamName() { QueryFactory qf = getQueryFactory(); Query q = qf.from(getModelFactory().getUserImplClass()) .having("name").eq(param("")) .build(); q.setParameter("", "John"); }
public void testParam() { QueryFactory qf = getQueryFactory(); Query q = qf.from(getModelFactory().getUserImplClass()) .having("gender").eq(param("param2")) .build(); q.setParameter("param2", User.Gender.MALE); List<User> list = q.list(); assertEquals(2, list.size()); assertEquals(User.Gender.MALE, list.get(0).getGender()); assertEquals(User.Gender.MALE, list.get(1).getGender()); q.setParameter("param2", User.Gender.FEMALE); list = q.list(); assertEquals(1, list.size()); assertEquals(User.Gender.FEMALE, list.get(0).getGender()); }
public void testDateParam() throws Exception { QueryFactory qf = getQueryFactory(); Query q = qf.from(getModelFactory().getAccountImplClass()) .having("creationDate").eq(param("param1")) .build().setParameter("param1", makeDate("2013-01-03")); List<Account> list = q.list(); assertEquals(1, list.size()); assertEquals(1, list.get(0).getId()); }
@Test public void testComplexQuery() throws Exception { QueryFactory qf = getQueryFactory(); Query q = qf.from(getModelFactory().getTransactionImplClass()) .select(avg("amount"), sum("amount"), count("date"), min("date"), max("accountId")) .having("isDebit").eq(param("param")) .orderBy(avg("amount"), SortOrder.DESC).orderBy(count("date"), SortOrder.DESC) .orderBy(max("amount"), SortOrder.ASC) .build(); q.setParameter("param", true); List<Object[]> list = q.list(); assertEquals(1, list.size()); assertEquals(5, list.get(0).length); assertEquals(143.50909d, (Double) list.get(0)[0], 0.0001d); assertEquals(7893d, (Double) list.get(0)[1], 0.0001d); assertEquals(55L, list.get(0)[2]); assertEquals(java.util.Date.class, list.get(0)[3].getClass()); assertEquals(makeDate("2013-01-01"), list.get(0)[3]); assertEquals(2, list.get(0)[4]); }
public void testEqHybridQueryWithParam() { QueryFactory qf = getQueryFactory(); Query q = qf.from(getModelFactory().getUserImplClass()) .having("notes").eq("Lorem ipsum dolor sit amet") .and().having("surname").eq(param("surnameParam")) .build(); q.setParameter("surnameParam", "Doe"); List<User> list = q.list(); assertEquals(1, list.size()); assertEquals(1, list.get(0).getId()); }
public void testParamWithGroupBy() { QueryFactory qf = getQueryFactory(); Query q = qf.from(getModelFactory().getTransactionImplClass()) .select(property("accountId"), property("date"), sum("amount")) .groupBy("accountId", "date") .having(sum("amount")).gt(param("param")) .build(); q.setParameter("param", 1801); List<Object[]> list = q.list(); assertEquals(1, list.size()); assertEquals(3, list.get(0).length); assertEquals(6225d, list.get(0)[2]); }
.having("age").lte(param("ageParam")) .build().setParameter("ageParam", 30);
.having("age").lte(param("ageParam")) .build();
.having("age").lte(param("ageParam")) .build().setParameter("ageParam", 31);
.having("age").lte(param("ageParam")) .build().setParameter("ageParam", 31);
.having("age").lte(param("ageParam")) .select("age") .build()