diff --git a/querydsl-sql/src/test/java/com/mysema/query/SelectBaseTest.java b/querydsl-sql/src/test/java/com/mysema/query/SelectBaseTest.java index 66cf1bab3..ccf37e63d 100644 --- a/querydsl-sql/src/test/java/com/mysema/query/SelectBaseTest.java +++ b/querydsl-sql/src/test/java/com/mysema/query/SelectBaseTest.java @@ -803,17 +803,22 @@ public abstract class SelectBaseTest extends AbstractBaseTest{ @SuppressWarnings("unchecked") @Test - public void Union_Multi_Column_Projection() throws IOException{ + public void Union_Multi_Column_Projection_List() throws IOException{ SubQueryExpression sq1 = sq().from(employee).unique(employee.id.max(), employee.id.max().subtract(1)); SubQueryExpression sq2 = sq().from(employee).unique(employee.id.min(), employee.id.min().subtract(1)); - // list List list = query().union(sq1, sq2).list(); assertEquals(2, list.size()); assertTrue(list.get(0) != null); assertTrue(list.get(1) != null); + } + + @SuppressWarnings("unchecked") + @Test + public void Union_Multi_Column_Projection_Iterate() throws IOException{ + SubQueryExpression sq1 = sq().from(employee).unique(employee.id.max(), employee.id.max().subtract(1)); + SubQueryExpression sq2 = sq().from(employee).unique(employee.id.min(), employee.id.min().subtract(1)); - // iterator CloseableIterator iterator = query().union(sq1,sq2).iterate(); try{ assertTrue(iterator.hasNext()); @@ -827,17 +832,22 @@ public abstract class SelectBaseTest extends AbstractBaseTest{ @SuppressWarnings("unchecked") @Test - public void Union_Single_Column_Projections() throws IOException{ + public void Union_Single_Column_Projections_List() throws IOException{ SubQueryExpression sq1 = sq().from(employee).unique(employee.id.max()); SubQueryExpression sq2 = sq().from(employee).unique(employee.id.min()); - // list List list = query().union(sq1, sq2).list(); assertEquals(2, list.size()); assertTrue(list.get(0) != null); assertTrue(list.get(1) != null); + } + + @SuppressWarnings("unchecked") + @Test + public void Union_Single_Column_Projections_Iterate() throws IOException{ + SubQueryExpression sq1 = sq().from(employee).unique(employee.id.max()); + SubQueryExpression sq2 = sq().from(employee).unique(employee.id.min()); - // iterator CloseableIterator iterator = query().union(sq1,sq2).iterate(); try{ assertTrue(iterator.hasNext()); @@ -849,6 +859,14 @@ public abstract class SelectBaseTest extends AbstractBaseTest{ } } + @SuppressWarnings("unchecked") + @Test + public void Union_FactoryExpression() { + ListSubQuery sq1 = sq().from(employee).list(Projections.constructor(Employee.class, employee.id)); + ListSubQuery sq2 = sq().from(employee).list(Projections.constructor(Employee.class, employee.id)); + query().union(sq1, sq2).list(); + } + @Test public void Unique_Constructor_Projection(){ // unique constructor projection diff --git a/querydsl-sql/src/test/java/com/mysema/query/sql/domain/Employee.java b/querydsl-sql/src/test/java/com/mysema/query/sql/domain/Employee.java index 1020302c7..6deb3ae1a 100644 --- a/querydsl-sql/src/test/java/com/mysema/query/sql/domain/Employee.java +++ b/querydsl-sql/src/test/java/com/mysema/query/sql/domain/Employee.java @@ -38,6 +38,12 @@ public class Employee { @Column("SUPERIOR_ID") private Integer superiorId; + public Employee() {} + + public Employee(int id) { + this.id = id; + } + public int getId() { return id; }