mirror of https://github.com/apache/openjpa.git
OPENJPA-2861 add unit tests for select sum(case..)
This commit is contained in:
parent
3647e4e257
commit
bb5503b147
|
@ -22,6 +22,7 @@ import java.util.List;
|
||||||
|
|
||||||
import javax.persistence.EntityManager;
|
import javax.persistence.EntityManager;
|
||||||
import javax.persistence.Query;
|
import javax.persistence.Query;
|
||||||
|
import javax.persistence.TypedQuery;
|
||||||
import javax.persistence.criteria.CriteriaBuilder;
|
import javax.persistence.criteria.CriteriaBuilder;
|
||||||
import javax.persistence.criteria.CriteriaQuery;
|
import javax.persistence.criteria.CriteriaQuery;
|
||||||
import javax.persistence.criteria.Expression;
|
import javax.persistence.criteria.Expression;
|
||||||
|
@ -92,6 +93,40 @@ public class TestAggregateFunctions extends SingleEMFTestCase {
|
||||||
em.close();
|
em.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* if a SUM(CASE statement is used, then the effective type might be different
|
||||||
|
*/
|
||||||
|
public void testAggregateWithCase() {
|
||||||
|
EntityManager em = emf.createEntityManager();
|
||||||
|
|
||||||
|
// Add a row to the table and re-test
|
||||||
|
em.getTransaction().begin();
|
||||||
|
AggEntity ae = new AggEntity();
|
||||||
|
ae.init();
|
||||||
|
ae.setStringVal("bare");
|
||||||
|
em.persist(ae);
|
||||||
|
AggEntity ae2 = new AggEntity();
|
||||||
|
ae2.init();
|
||||||
|
ae2.setStringVal("foot");
|
||||||
|
em.persist(ae2);
|
||||||
|
em.getTransaction().commit();
|
||||||
|
|
||||||
|
/*X
|
||||||
|
em.getTransaction().begin();
|
||||||
|
final TypedQuery<Long> q2 = em.createQuery("select SUM(ae.intVal) from AggEntity AS ae", Long.class);
|
||||||
|
final Long sum = q2.getSingleResult();
|
||||||
|
assertEquals(2L, (long) sum);
|
||||||
|
*/
|
||||||
|
|
||||||
|
final TypedQuery<Long> q = em.createQuery("select SUM(CASE ae.stringVal WHEN 'bare' THEN 1 ELSE 0 END) from AggEntity AS ae", Long.class);
|
||||||
|
final Long sumC = q.getSingleResult();
|
||||||
|
assertEquals(1L, (long) sumC);
|
||||||
|
|
||||||
|
em.getTransaction().commit();
|
||||||
|
|
||||||
|
em.close();
|
||||||
|
}
|
||||||
|
|
||||||
public void testAggregateCriteria() {
|
public void testAggregateCriteria() {
|
||||||
EntityManager em = emf.createEntityManager();
|
EntityManager em = emf.createEntityManager();
|
||||||
Metamodel mm = emf.getMetamodel();
|
Metamodel mm = emf.getMetamodel();
|
||||||
|
|
|
@ -37,15 +37,15 @@ import org.apache.openjpa.persistence.test.SingleEMFTestCase;
|
||||||
*/
|
*/
|
||||||
public class TestAggregateQueryWithNoResult extends SingleEMFTestCase {
|
public class TestAggregateQueryWithNoResult extends SingleEMFTestCase {
|
||||||
EntityManager em;
|
EntityManager em;
|
||||||
@Override
|
|
||||||
|
@Override
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
super.setUp(CLEAR_TABLES,
|
super.setUp(CLEAR_TABLES,
|
||||||
"openjpa.Compatibility", "ReturnNullOnAggregateResult=false", //OPENJPA-1794
|
"openjpa.Compatibility", "ReturnNullOnAggregateResult=false", //OPENJPA-1794
|
||||||
Game.class, IndoorGame.class, Scrabble.class,
|
Game.class, IndoorGame.class, Scrabble.class, Chess.class);
|
||||||
Chess.class);
|
|
||||||
em = emf.createEntityManager();
|
em = emf.createEntityManager();
|
||||||
assertTrue(em.createQuery("select p from Scrabble p").getResultList().isEmpty());
|
assertTrue(em.createQuery("select p from Scrabble p").getResultList().isEmpty());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void testSumWithNoResult() {
|
public void testSumWithNoResult() {
|
||||||
|
|
Loading…
Reference in New Issue