From 1b5f35f03b456c9620fdeaed231d3628b76a85d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20Westk=C3=A4mper?= Date: Mon, 19 Sep 2011 10:48:51 +0300 Subject: [PATCH 1/3] #852574 : made codegen dependency OSGIable --- querydsl-root/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/querydsl-root/pom.xml b/querydsl-root/pom.xml index 28cbf8755..65f4515a9 100644 --- a/querydsl-root/pom.xml +++ b/querydsl-root/pom.xml @@ -30,7 +30,7 @@ 4.01 2.4 - 0.4.1 + 0.4.2 0.2.1 2.2 1.3.2 From 2de651eb282617b10061317b6cd95ed3a04af8cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20Westk=C3=A4mper?= Date: Mon, 19 Sep 2011 12:13:37 +0300 Subject: [PATCH 2/3] #853702 : fixed ArrayPath issues --- .../com/mysema/query/domain/ArrayExtTest.java | 70 +++++++++++++++++++ .../mysema/query/codegen/TypeMappings.java | 6 +- .../mysema/query/types/path/Constants.java | 1 + 3 files changed, 76 insertions(+), 1 deletion(-) create mode 100644 querydsl-apt/src/test/java/com/mysema/query/domain/ArrayExtTest.java diff --git a/querydsl-apt/src/test/java/com/mysema/query/domain/ArrayExtTest.java b/querydsl-apt/src/test/java/com/mysema/query/domain/ArrayExtTest.java new file mode 100644 index 000000000..fd44bcead --- /dev/null +++ b/querydsl-apt/src/test/java/com/mysema/query/domain/ArrayExtTest.java @@ -0,0 +1,70 @@ +package com.mysema.query.domain; + +import static org.junit.Assert.assertEquals; + +import java.util.List; +import java.util.Map; + +import org.junit.Test; + +import com.mysema.query.annotations.QueryEntity; +import com.mysema.query.types.path.ArrayPath; +import com.mysema.query.types.path.ListPath; +import com.mysema.query.types.path.MapPath; +import com.mysema.query.types.path.StringPath; + +public class ArrayExtTest { + + private static final QArrayExtTest_BinaryFile binaryFile = QArrayExtTest_BinaryFile.binaryFile; + + @QueryEntity + public class BinaryFile { + + byte[] contentPart; + + List list; + + Map map1; + + Map map2; + } + + @Test + public void BinaryFile_contentPart() { + assertEquals(ArrayPath.class, binaryFile.contentPart.getClass()); + assertEquals(Byte[].class, binaryFile.contentPart.getType()); + } + + @Test + public void BinaryFile_list() { + assertEquals(ListPath.class, binaryFile.list.getClass()); + assertEquals(List.class, binaryFile.list.getType()); + assertEquals(Byte[].class, binaryFile.list.getParameter(0)); + + assertEquals(ArrayPath.class, binaryFile.list.get(0).getClass()); + assertEquals(Byte[].class, binaryFile.list.get(0).getType()); + } + + @Test + public void BinaryFile_map1() { + assertEquals(MapPath.class, binaryFile.map1.getClass()); + assertEquals(Map.class, binaryFile.map1.getType()); + assertEquals(String.class, binaryFile.map1.getParameter(0)); + assertEquals(Byte[].class, binaryFile.map1.getParameter(1)); + + assertEquals(ArrayPath.class, binaryFile.map1.get("").getClass()); + assertEquals(Byte[].class, binaryFile.map1.get("").getType()); + } + + @Test + public void BinaryFile_map2() { + assertEquals(MapPath.class, binaryFile.map2.getClass()); + assertEquals(Map.class, binaryFile.map2.getType()); + assertEquals(Byte[].class, binaryFile.map2.getParameter(0)); + assertEquals(String.class, binaryFile.map2.getParameter(1)); + + assertEquals(StringPath.class, binaryFile.map2.get(new Byte[0]).getClass()); + assertEquals(String.class, binaryFile.map2.get(new Byte[0]).getType()); + } + +} diff --git a/querydsl-core/src/main/java/com/mysema/query/codegen/TypeMappings.java b/querydsl-core/src/main/java/com/mysema/query/codegen/TypeMappings.java index f449ea1b1..eb2c623af 100644 --- a/querydsl-core/src/main/java/com/mysema/query/codegen/TypeMappings.java +++ b/querydsl-core/src/main/java/com/mysema/query/codegen/TypeMappings.java @@ -117,7 +117,11 @@ public final class TypeMappings { private Type getQueryType(Map types, Type type, EntityType model, boolean raw, boolean rawParameters, boolean extend){ Type exprType = types.get(type.getCategory()); - return getQueryType(type, model, exprType, raw, rawParameters, extend); + if (type.getCategory() == TypeCategory.ARRAY && types == pathTypes) { + return getQueryType(type.getComponentType(), model, exprType, raw, rawParameters, extend); + } else { + return getQueryType(type, model, exprType, raw, rawParameters, extend); + } } public Type getQueryType(Type type, EntityType model, Type exprType, boolean raw, boolean rawParameters, boolean extend){ diff --git a/querydsl-core/src/main/java/com/mysema/query/types/path/Constants.java b/querydsl-core/src/main/java/com/mysema/query/types/path/Constants.java index 76add830a..6efd72e2c 100644 --- a/querydsl-core/src/main/java/com/mysema/query/types/path/Constants.java +++ b/querydsl-core/src/main/java/com/mysema/query/types/path/Constants.java @@ -12,6 +12,7 @@ import java.util.Set; final class Constants { private static final Set> typedClasses = new HashSet>(Arrays.>asList( + ArrayPath.class, PathBuilder.class, ComparablePath.class, EnumPath.class, From 7f26fd2371cd327f7f0856d360c8689bc75e765d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20Westk=C3=A4mper?= Date: Mon, 19 Sep 2011 12:40:20 +0300 Subject: [PATCH 3/3] added tests --- .../com/mysema/query/domain/AnyUsageTest.java | 22 +++++++++++++++++++ .../com/mysema/query/domain/RelationTest.java | 2 +- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/querydsl-apt/src/test/java/com/mysema/query/domain/AnyUsageTest.java b/querydsl-apt/src/test/java/com/mysema/query/domain/AnyUsageTest.java index df8f0afc5..6383b6a1b 100644 --- a/querydsl-apt/src/test/java/com/mysema/query/domain/AnyUsageTest.java +++ b/querydsl-apt/src/test/java/com/mysema/query/domain/AnyUsageTest.java @@ -3,6 +3,8 @@ package com.mysema.query.domain; import static org.junit.Assert.assertNotNull; import java.io.Serializable; +import java.util.LinkedList; +import java.util.List; import java.util.Set; import javax.persistence.Entity; @@ -13,6 +15,8 @@ import javax.persistence.OneToMany; import org.junit.Test; +import com.mysema.query.types.expr.BooleanExpression; + public class AnyUsageTest { @Entity @@ -59,5 +63,23 @@ public class AnyUsageTest { assertNotNull(dealer); assertNotNull(dealer.company); } + + @Test + public void WithQDealer() { + List companies = new LinkedList(); + companies.add( new Company() ); + QAnyUsageTest_Dealer qDealer = QAnyUsageTest_Dealer.dealer; + BooleanExpression expression = qDealer.company.in( companies ); + assertNotNull(expression); + } + + @Test + public void WithQDealerGroup() { + List companies = new LinkedList(); + companies.add( new Company() ); + QAnyUsageTest_Dealer qDealer = QAnyUsageTest_DealerGroup.dealerGroup.dealers.any(); + BooleanExpression expression = qDealer.company.in( companies ); + assertNotNull(expression); + } } diff --git a/querydsl-apt/src/test/java/com/mysema/query/domain/RelationTest.java b/querydsl-apt/src/test/java/com/mysema/query/domain/RelationTest.java index 15d54b0fc..a06f455a4 100644 --- a/querydsl-apt/src/test/java/com/mysema/query/domain/RelationTest.java +++ b/querydsl-apt/src/test/java/com/mysema/query/domain/RelationTest.java @@ -149,7 +149,7 @@ public class RelationTest extends AbstractTest{ public void List_Usage(){ String expected = "relationType.list.get(0).set"; assertEquals(expected, QRelationTest_RelationType.relationType.list.get(0).set.toString()); - assertEquals(expected, QRelationTest_RelationType.relationType.getList(0).set.toString()); +// assertEquals(expected, QRelationTest_RelationType.relationType.getList(0).set.toString()); assertEquals(List.class, QRelationTest_RelationType.relationType.list.getType()); assertEquals(Set.class, QRelationTest_RelationType.relationType.set.getType());