From 75416a1e2aef5154970d5cc270bf3342da26fabf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20Westk=C3=A4mper?= Date: Tue, 24 Nov 2009 13:05:00 +0000 Subject: [PATCH] improvements to aggregate method usage --- .../com/mysema/query/types/expr/ENumber.java | 3 +- .../main/java/com/mysema/util/MathUtils.java | 3 ++ .../java/com/mysema/query/CoverageTest.java | 2 +- .../test/java/com/mysema/query/Filters.java | 2 +- .../java/com/mysema/query/Projections.java | 15 ++++++-- .../java/com/mysema/query/StandardTest.java | 2 +- .../com/mysema/query/hql/HQLQueryBase.java | 4 +- .../query/hql/hibernate/HibernateUtil.java | 30 +++++++++++++++ .../com/mysema/query/hql/jpa/JPAUtil.java | 3 +- .../mysema/query/AbstractStandardTest.java | 19 +++++++--- .../java/com/mysema/query/ExtDoubleType.java | 16 ++++++++ .../com/mysema/query/HibernateTestRunner.java | 1 + .../java/com/mysema/query/hql/MathTest.java | 12 +++--- .../java/com/mysema/query/hql/ParserTest.java | 2 +- .../com/mysema/query/hql/domain/Animal.java | 14 +++++-- .../java/com/mysema/query/hql/domain/Cat.java | 6 +++ .../test/resources/META-INF/persistence.xml | 2 +- .../mysema/query/sql/AbstractSQLQuery.java | 37 ++++++++++++------- .../com/mysema/query/sql/DerbyTemplates.java | 4 +- .../com/mysema/query/sql/HSQLDBTemplates.java | 4 +- .../java/com/mysema/query/sql/JDBCUtil.java | 5 +++ .../com/mysema/query/sql/MySQLTemplates.java | 4 +- .../java/com/mysema/query/sql/SQLQuery.java | 5 +++ .../com/mysema/query/sql/SQLSubQuery.java | 5 +++ .../main/java/com/mysema/query/sql/Union.java | 10 +++++ .../query/sql/dml/AbstractDMLClause.java | 5 +++ .../mysema/query/sql/dml/SQLDeleteClause.java | 5 +++ .../mysema/query/sql/dml/SQLUpdateClause.java | 5 +++ .../com/mysema/query/AbstractSQLTest.java | 12 +++++- 29 files changed, 188 insertions(+), 49 deletions(-) create mode 100644 querydsl-hql/src/test/java/com/mysema/query/ExtDoubleType.java diff --git a/querydsl-core/src/main/java/com/mysema/query/types/expr/ENumber.java b/querydsl-core/src/main/java/com/mysema/query/types/expr/ENumber.java index df81d371c..abd54c7e1 100644 --- a/querydsl-core/src/main/java/com/mysema/query/types/expr/ENumber.java +++ b/querydsl-core/src/main/java/com/mysema/query/types/expr/ENumber.java @@ -13,7 +13,6 @@ import com.mysema.query.types.operation.ONumber; import com.mysema.query.types.operation.Ops; import com.mysema.query.types.operation.Ops.MathOps; - /** * ENumber represents a numeric expression * @@ -104,7 +103,7 @@ public abstract class ENumber> extends ECompara */ public ENumber avg(){ if (avg == null){ - avg = ONumber.create(Double.class, Ops.AggOps.AVG_AGG, this); + avg = ONumber.create(Double.class, Ops.AggOps.AVG_AGG, this); } return avg; } diff --git a/querydsl-core/src/main/java/com/mysema/util/MathUtils.java b/querydsl-core/src/main/java/com/mysema/util/MathUtils.java index b284b6823..0a695ca98 100644 --- a/querydsl-core/src/main/java/com/mysema/util/MathUtils.java +++ b/querydsl-core/src/main/java/com/mysema/util/MathUtils.java @@ -6,6 +6,7 @@ package com.mysema.util; import java.math.BigDecimal; +import java.math.BigInteger; public class MathUtils { @@ -30,6 +31,8 @@ public class MathUtils { else if (type.equals(Integer.class)) rv = num.intValue(); else if (type.equals(Long.class)) rv = num.longValue(); else if (type.equals(Short.class)) rv = num.shortValue(); + else if (type.equals(BigDecimal.class)) rv = num; + else if (type.equals(BigInteger.class)) rv = num.toBigInteger(); else throw new IllegalArgumentException(String.format("Illegal type : %s", type.getSimpleName())); return (D) rv; } diff --git a/querydsl-core/src/test/java/com/mysema/query/CoverageTest.java b/querydsl-core/src/test/java/com/mysema/query/CoverageTest.java index dc767ef2e..e1a0b6c53 100644 --- a/querydsl-core/src/test/java/com/mysema/query/CoverageTest.java +++ b/querydsl-core/src/test/java/com/mysema/query/CoverageTest.java @@ -41,7 +41,7 @@ public class CoverageTest { Set> usedOperators = new HashSet>(); List> exprs = new ArrayList>(); // numeric - exprs.addAll(projections.numeric($(0), $(1), 1)); + exprs.addAll(projections.numeric($(0), $(1), 1, false)); exprs.addAll(matchers.numeric($(0), $(1), 1)); exprs.addAll(filters.numeric($(0), $(1), 1)); exprs.addAll(projections.numericCasts($(0), $(1), 1)); diff --git a/querydsl-core/src/test/java/com/mysema/query/Filters.java b/querydsl-core/src/test/java/com/mysema/query/Filters.java index a839916d5..fe659f632 100644 --- a/querydsl-core/src/test/java/com/mysema/query/Filters.java +++ b/querydsl-core/src/test/java/com/mysema/query/Filters.java @@ -145,7 +145,7 @@ public class Filters { @SuppressWarnings("unchecked") > Collection numeric(ENumber expr, ENumber other, A knownValue){ List rv = new ArrayList(); - for (ENumber num : projections.numeric(expr, other, knownValue)){ + for (ENumber num : projections.numeric(expr, other, knownValue, true)){ rv.add(num.lt(expr)); } rv.add(expr.ne(other)); diff --git a/querydsl-core/src/test/java/com/mysema/query/Projections.java b/querydsl-core/src/test/java/com/mysema/query/Projections.java index 037787b03..d7acdf68a 100644 --- a/querydsl-core/src/test/java/com/mysema/query/Projections.java +++ b/querydsl-core/src/test/java/com/mysema/query/Projections.java @@ -82,15 +82,15 @@ public class Projections { return rv; } - > Collection> numeric(ENumber expr, ENumber other, A knownValue){ + > Collection> numeric(ENumber expr, ENumber other, A knownValue, boolean forFilter){ HashSet> rv = new HashSet>(); - rv.addAll(numeric(expr, other)); - rv.addAll(numeric(expr, ENumberConst.create(knownValue))); + rv.addAll(numeric(expr, other, forFilter)); + rv.addAll(numeric(expr, ENumberConst.create(knownValue), forFilter)); return rv; } @SuppressWarnings("unchecked") - private > Collection> numeric(ENumber expr, ENumber other){ + private > Collection> numeric(ENumber expr, ENumber other, boolean forFilter){ HashSet> rv = new HashSet>(); rv.add(expr.abs()); rv.add(expr.add(other)); @@ -99,6 +99,13 @@ public class Projections { rv.add(expr.sqrt()); rv.add(expr.subtract(other)); + if (!forFilter && module != Module.COLLECTIONS){ + rv.add(expr.min()); + rv.add(expr.max()); + rv.add(expr.avg()); + rv.add(expr.count()); + } + if (!(other instanceof Constant || module == Module.JDOQL || module == Module.RDFBEAN)){ CaseBuilder cases = new CaseBuilder(); rv.add(ENumberConst.create(1).add(cases diff --git a/querydsl-core/src/test/java/com/mysema/query/StandardTest.java b/querydsl-core/src/test/java/com/mysema/query/StandardTest.java index 349e71b57..d9f3a21ee 100644 --- a/querydsl-core/src/test/java/com/mysema/query/StandardTest.java +++ b/querydsl-core/src/test/java/com/mysema/query/StandardTest.java @@ -182,7 +182,7 @@ public abstract class StandardTest { public > void numericTests(ENumber expr, ENumber other, A knownValue){ execute(matchers.numeric(expr, other, knownValue), true); execute(filters.numeric(expr, other, knownValue), false); - execute(projections.numeric(expr, other, knownValue)); + execute(projections.numeric(expr, other, knownValue, false)); } public void stringTests(EString expr, EString other, String knownValue){ diff --git a/querydsl-hql/src/main/java/com/mysema/query/hql/HQLQueryBase.java b/querydsl-hql/src/main/java/com/mysema/query/hql/HQLQueryBase.java index 2949d1641..f5f421f67 100644 --- a/querydsl-hql/src/main/java/com/mysema/query/hql/HQLQueryBase.java +++ b/querydsl-hql/src/main/java/com/mysema/query/hql/HQLQueryBase.java @@ -21,7 +21,6 @@ import com.mysema.query.types.expr.Expr; import com.mysema.query.types.operation.OSimple; import com.mysema.query.types.operation.Ops; import com.mysema.query.types.path.PEntity; -import com.mysema.query.types.path.PCollection; import com.mysema.query.types.path.PMap; import com.mysema.query.types.path.PSimple; import com.mysema.query.types.path.Path; @@ -76,8 +75,7 @@ public abstract class HQLQueryBase> extend Map map) { BooleanBuilder expr = new BooleanBuilder(); for (Map.Entry entry : map.entrySet()) { - PathMetadata md = PathMetadata.forProperty(entity, entry - .getKey()); + PathMetadata md = PathMetadata.forProperty(entity, entry.getKey()); PSimple path = new PSimple(Object.class, md); if (entry.getValue() != null) { expr.and(path.eq(entry.getValue())); diff --git a/querydsl-hql/src/main/java/com/mysema/query/hql/hibernate/HibernateUtil.java b/querydsl-hql/src/main/java/com/mysema/query/hql/hibernate/HibernateUtil.java index 34a5cd4e5..8f56d3ce6 100644 --- a/querydsl-hql/src/main/java/com/mysema/query/hql/hibernate/HibernateUtil.java +++ b/querydsl-hql/src/main/java/com/mysema/query/hql/hibernate/HibernateUtil.java @@ -1,9 +1,21 @@ package com.mysema.query.hql.hibernate; +import java.math.BigDecimal; +import java.math.BigInteger; import java.util.Collection; +import java.util.HashMap; import java.util.Map; import org.hibernate.Query; +import org.hibernate.type.BigDecimalType; +import org.hibernate.type.BigIntegerType; +import org.hibernate.type.ByteType; +import org.hibernate.type.DoubleType; +import org.hibernate.type.FloatType; +import org.hibernate.type.IntegerType; +import org.hibernate.type.LongType; +import org.hibernate.type.ShortType; +import org.hibernate.type.Type; /** * Utility methods for Hibernate @@ -13,6 +25,19 @@ import org.hibernate.Query; */ public final class HibernateUtil { + private static final Map,Type> types = new HashMap,Type>(); + + static{ + types.put(Byte.class, new ByteType()); + types.put(Short.class, new ShortType()); + types.put(Integer.class, new IntegerType()); + types.put(Long.class, new LongType()); + types.put(BigInteger.class, new BigIntegerType()); + types.put(Double.class, new DoubleType()); + types.put(Float.class, new FloatType()); + types.put(BigDecimal.class, new BigDecimalType()); + } + private HibernateUtil(){} public static void setConstants(Query query, Map constants) { @@ -23,9 +48,14 @@ public final class HibernateUtil { if (val instanceof Collection) { // NOTE : parameter types should be given explicitly query.setParameterList(key, (Collection) val); + } else if (val.getClass().isArray()) { // NOTE : parameter types should be given explicitly query.setParameterList(key, (Object[]) val); + + }else if (types.containsKey(val.getClass())){ + query.setParameter(key, val, types.get(val.getClass())); + } else { // NOTE : parameter types should be given explicitly query.setParameter(key, val); diff --git a/querydsl-hql/src/main/java/com/mysema/query/hql/jpa/JPAUtil.java b/querydsl-hql/src/main/java/com/mysema/query/hql/jpa/JPAUtil.java index d8819f777..da2e90852 100644 --- a/querydsl-hql/src/main/java/com/mysema/query/hql/jpa/JPAUtil.java +++ b/querydsl-hql/src/main/java/com/mysema/query/hql/jpa/JPAUtil.java @@ -4,6 +4,7 @@ import java.util.Map; import javax.persistence.Query; + /** * Utility methods for JPA * @@ -11,7 +12,7 @@ import javax.persistence.Query; * */ public final class JPAUtil { - + private JPAUtil(){} public static void setConstants(Query query, Map constants) { diff --git a/querydsl-hql/src/test/java/com/mysema/query/AbstractStandardTest.java b/querydsl-hql/src/test/java/com/mysema/query/AbstractStandardTest.java index de5176801..b1b96b298 100644 --- a/querydsl-hql/src/test/java/com/mysema/query/AbstractStandardTest.java +++ b/querydsl-hql/src/test/java/com/mysema/query/AbstractStandardTest.java @@ -86,11 +86,11 @@ public abstract class AbstractStandardTest { public void setUp(){ Cat prev = null; for (Cat cat : Arrays.asList( - new Cat("Bob123", 1), - new Cat("Ruth123", 2), - new Cat("Felix123", 3), - new Cat("Allen123", 4), - new Cat("Mary123", 5))){ + new Cat("Bob123", 1, 1.0), + new Cat("Ruth123", 2, 2.0), + new Cat("Felix123", 3, 3.0), + new Cat("Allen123", 4, 4.0), + new Cat("Mary123", 5, 5.0))){ if (prev != null){ cat.getKittens().add(prev); } @@ -102,7 +102,7 @@ public abstract class AbstractStandardTest { prev = cat; } - Cat cat = new Cat("Some",6); + Cat cat = new Cat("Some",6, 6.0); save(cat); savedCats.add(cat); } @@ -118,8 +118,15 @@ public abstract class AbstractStandardTest { standardTest.dateTimeTests(cat.birthdate, otherCat.birthdate, birthDate); standardTest.listTests(cat.kittens, otherCat.kittens, kitten, noKitten); // standardTest.mapTests(cat.kittensByName, otherCat.kittensByName, "Kitty", kitten); + + // int standardTest.numericCasts(cat.id, otherCat.id, 1); standardTest.numericTests(cat.id, otherCat.id, 1); + + // double + standardTest.numericCasts(cat.bodyWeight, otherCat.bodyWeight, 1.0); + standardTest.numericTests(cat.bodyWeight, otherCat.bodyWeight, 1.0); + standardTest.stringTests(cat.name, otherCat.name, kitten.getName()); standardTest.timeTests(cat.timeField, otherCat.timeField, time); diff --git a/querydsl-hql/src/test/java/com/mysema/query/ExtDoubleType.java b/querydsl-hql/src/test/java/com/mysema/query/ExtDoubleType.java new file mode 100644 index 000000000..1b39ec2c9 --- /dev/null +++ b/querydsl-hql/src/test/java/com/mysema/query/ExtDoubleType.java @@ -0,0 +1,16 @@ +package com.mysema.query; + +import java.sql.PreparedStatement; +import java.sql.SQLException; + +import org.hibernate.type.DoubleType; + +@SuppressWarnings("serial") +public class ExtDoubleType extends DoubleType{ + + @Override + public void set(PreparedStatement st, Object value, int index) throws SQLException { + st.setDouble( index, ( (Number) value ).doubleValue() ); + } + +} diff --git a/querydsl-hql/src/test/java/com/mysema/query/HibernateTestRunner.java b/querydsl-hql/src/test/java/com/mysema/query/HibernateTestRunner.java index abc517ca8..7b292ff10 100644 --- a/querydsl-hql/src/test/java/com/mysema/query/HibernateTestRunner.java +++ b/querydsl-hql/src/test/java/com/mysema/query/HibernateTestRunner.java @@ -5,6 +5,7 @@ */ package com.mysema.query; +import java.io.File; import java.io.InputStream; import java.lang.reflect.Method; import java.util.Properties; diff --git a/querydsl-hql/src/test/java/com/mysema/query/hql/MathTest.java b/querydsl-hql/src/test/java/com/mysema/query/hql/MathTest.java index 8687bbe4a..ee3f1d516 100644 --- a/querydsl-hql/src/test/java/com/mysema/query/hql/MathTest.java +++ b/querydsl-hql/src/test/java/com/mysema/query/hql/MathTest.java @@ -14,21 +14,21 @@ public class MathTest extends AbstractQueryTest{ @Test public void test(){ - PNumber path = QCat.cat.bodyWeight; + PNumber path = QCat.cat.bodyWeight; toString("(cat.bodyWeight - sum(cat.bodyWeight)) * cat.bodyWeight", path.subtract(path.sum()).multiply(path)); } @Test - public void testArithmeticOperationsInFunctionalWay() { + public void testArithmeticOperationsInFunctionalWay() { toString("cat.bodyWeight + :a1", cat.bodyWeight.add(10)); toString("cat.bodyWeight - :a1", cat.bodyWeight.subtract(10)); toString("cat.bodyWeight * :a1", cat.bodyWeight.multiply(10)); toString("cat.bodyWeight / :a1", cat.bodyWeight.divide(10)); - toString("cat.bodyWeight + :a1 < :a1", cat.bodyWeight.add(10).lt(10)); - toString("cat.bodyWeight - :a1 < :a1", cat.bodyWeight.subtract(10).lt(10)); - toString("cat.bodyWeight * :a1 < :a1", cat.bodyWeight.multiply(10).lt(10)); - toString("cat.bodyWeight / :a1 < :a2", cat.bodyWeight.divide(10).lt(10d)); + toString("cat.bodyWeight + :a1 < :a1", cat.bodyWeight.add(10.0).lt(10.0)); + toString("cat.bodyWeight - :a1 < :a1", cat.bodyWeight.subtract(10.0).lt(10.0)); + toString("cat.bodyWeight * :a1 < :a1", cat.bodyWeight.multiply(10.0).lt(10.0)); + toString("cat.bodyWeight / :a1 < :a2", cat.bodyWeight.divide(10.0).lt(20.0)); toString("(cat.bodyWeight + :a1) * :a2", cat.bodyWeight.add(10).multiply(20)); toString("(cat.bodyWeight - :a1) * :a2", cat.bodyWeight.subtract(10).multiply(20)); diff --git a/querydsl-hql/src/test/java/com/mysema/query/hql/ParserTest.java b/querydsl-hql/src/test/java/com/mysema/query/hql/ParserTest.java index 21e2e97d3..899b809c9 100644 --- a/querydsl-hql/src/test/java/com/mysema/query/hql/ParserTest.java +++ b/querydsl-hql/src/test/java/com/mysema/query/hql/ParserTest.java @@ -927,7 +927,7 @@ public class ParserTest implements Constants { @Test public void testCasts() throws Exception { - ENumber bw = cat.bodyWeight; + ENumber bw = cat.bodyWeight; query().from(cat).select(bw.byteValue(), bw.doubleValue(), bw.floatValue(), bw.intValue(), bw.longValue(), bw.shortValue(), bw.stringValue()).parse(); diff --git a/querydsl-hql/src/test/java/com/mysema/query/hql/domain/Animal.java b/querydsl-hql/src/test/java/com/mysema/query/hql/domain/Animal.java index f4bd1d672..a208af1b3 100644 --- a/querydsl-hql/src/test/java/com/mysema/query/hql/domain/Animal.java +++ b/querydsl-hql/src/test/java/com/mysema/query/hql/domain/Animal.java @@ -8,6 +8,10 @@ package com.mysema.query.hql.domain; import javax.persistence.Entity; import javax.persistence.Id; +import org.hibernate.annotations.Type; + +import com.mysema.query.ExtDoubleType; + /** * The Class Animal. */ @@ -17,7 +21,11 @@ public class Animal { private java.util.Date birthdate; - private int bodyWeight, weight, toes; + private int weight, toes; + + // needed for JPA tests + @Type(type="com.mysema.query.ExtDoubleType") + private double bodyWeight; private Color color; @@ -34,7 +42,7 @@ public class Animal { return birthdate; } - public int getBodyWeight() { + public double getBodyWeight() { return bodyWeight; } @@ -78,7 +86,7 @@ public class Animal { this.birthdate = birthdate; } - public void setBodyWeight(int bodyWeight) { + public void setBodyWeight(double bodyWeight) { this.bodyWeight = bodyWeight; } diff --git a/querydsl-hql/src/test/java/com/mysema/query/hql/domain/Cat.java b/querydsl-hql/src/test/java/com/mysema/query/hql/domain/Cat.java index 14867044f..0572f0d2c 100644 --- a/querydsl-hql/src/test/java/com/mysema/query/hql/domain/Cat.java +++ b/querydsl-hql/src/test/java/com/mysema/query/hql/domain/Cat.java @@ -19,6 +19,7 @@ import org.hibernate.annotations.IndexColumn; */ @Entity public class Cat extends Animal { + private int breed; private Color eyecolor; @@ -37,6 +38,11 @@ public class Cat extends Animal { this.setName( name); } + public Cat(String name, int id, double bodyWeight){ + this(name, id); + this.setBodyWeight(bodyWeight); + } + public int getBreed() { return breed; } diff --git a/querydsl-hql/src/test/resources/META-INF/persistence.xml b/querydsl-hql/src/test/resources/META-INF/persistence.xml index a830a76a3..4c01f0b45 100644 --- a/querydsl-hql/src/test/resources/META-INF/persistence.xml +++ b/querydsl-hql/src/test/resources/META-INF/persistence.xml @@ -6,8 +6,8 @@ http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0"> - + diff --git a/querydsl-sql/src/main/java/com/mysema/query/sql/AbstractSQLQuery.java b/querydsl-sql/src/main/java/com/mysema/query/sql/AbstractSQLQuery.java index 0ae717e11..e0294ed69 100644 --- a/querydsl-sql/src/main/java/com/mysema/query/sql/AbstractSQLQuery.java +++ b/querydsl-sql/src/main/java/com/mysema/query/sql/AbstractSQLQuery.java @@ -13,6 +13,8 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.List; +import javax.annotation.Nullable; + import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -216,7 +218,7 @@ public abstract class AbstractSQLQuery } @SuppressWarnings("unchecked") - private List listSingle(Expr expr) throws SQLException { + private List listSingle(@Nullable Expr expr) throws SQLException { String queryString = buildQueryString(false); logger.debug("query : {}", queryString); PreparedStatement stmt = conn.prepareStatement(queryString); @@ -224,26 +226,33 @@ public abstract class AbstractSQLQuery ResultSet rs = stmt.executeQuery(); try { List rv = new ArrayList(); - if (expr instanceof EConstructor) { - EConstructor c = (EConstructor) expr; - java.lang.reflect.Constructor cc = c.getJavaConstructor(); - while (rs.next()) { - try { + try { + if (expr instanceof EConstructor) { + EConstructor c = (EConstructor) expr; + java.lang.reflect.Constructor cc = c.getJavaConstructor(); + while (rs.next()) { List args = new ArrayList(); for (int i = 0; i < c.getArgs().size(); i++) { args.add(get(rs, i + 1, c.getArg(i).getType())); } rv.add(cc.newInstance(args.toArray())); - } catch (Exception e) { - String error = "Caught " + e.getClass().getName(); - logger.error(error, e); - throw new RuntimeException(e.getMessage(), e); + + } + + } else if (expr != null){ + while (rs.next()) { + rv.add(get(rs, 1, expr.getType())); + } + + }else{ + while (rs.next()) { + rv.add((RT) rs.getObject(1)); } } - } else { - while (rs.next()) { - rv.add((RT) rs.getObject(1)); - } + } catch (Exception e) { + String error = "Caught " + e.getClass().getName(); + logger.error(error, e); + throw new RuntimeException(e.getMessage(), e); } return rv; } finally { diff --git a/querydsl-sql/src/main/java/com/mysema/query/sql/DerbyTemplates.java b/querydsl-sql/src/main/java/com/mysema/query/sql/DerbyTemplates.java index f62e8cb0e..4cf86fd57 100644 --- a/querydsl-sql/src/main/java/com/mysema/query/sql/DerbyTemplates.java +++ b/querydsl-sql/src/main/java/com/mysema/query/sql/DerbyTemplates.java @@ -1,4 +1,6 @@ -/** +/* + * Copyright (c) 2009 Mysema Ltd. + * All rights reserved. * */ package com.mysema.query.sql; diff --git a/querydsl-sql/src/main/java/com/mysema/query/sql/HSQLDBTemplates.java b/querydsl-sql/src/main/java/com/mysema/query/sql/HSQLDBTemplates.java index 29328a737..da1789ac1 100644 --- a/querydsl-sql/src/main/java/com/mysema/query/sql/HSQLDBTemplates.java +++ b/querydsl-sql/src/main/java/com/mysema/query/sql/HSQLDBTemplates.java @@ -1,4 +1,6 @@ -/** +/* + * Copyright (c) 2009 Mysema Ltd. + * All rights reserved. * */ package com.mysema.query.sql; diff --git a/querydsl-sql/src/main/java/com/mysema/query/sql/JDBCUtil.java b/querydsl-sql/src/main/java/com/mysema/query/sql/JDBCUtil.java index 0c8ae3e68..b10571b01 100644 --- a/querydsl-sql/src/main/java/com/mysema/query/sql/JDBCUtil.java +++ b/querydsl-sql/src/main/java/com/mysema/query/sql/JDBCUtil.java @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2009 Mysema Ltd. + * All rights reserved. + * + */ package com.mysema.query.sql; import java.sql.PreparedStatement; diff --git a/querydsl-sql/src/main/java/com/mysema/query/sql/MySQLTemplates.java b/querydsl-sql/src/main/java/com/mysema/query/sql/MySQLTemplates.java index 78a7eac32..c13a592a5 100644 --- a/querydsl-sql/src/main/java/com/mysema/query/sql/MySQLTemplates.java +++ b/querydsl-sql/src/main/java/com/mysema/query/sql/MySQLTemplates.java @@ -1,4 +1,6 @@ -/** +/* + * Copyright (c) 2009 Mysema Ltd. + * All rights reserved. * */ package com.mysema.query.sql; diff --git a/querydsl-sql/src/main/java/com/mysema/query/sql/SQLQuery.java b/querydsl-sql/src/main/java/com/mysema/query/sql/SQLQuery.java index 05d06e1f6..2f3144644 100644 --- a/querydsl-sql/src/main/java/com/mysema/query/sql/SQLQuery.java +++ b/querydsl-sql/src/main/java/com/mysema/query/sql/SQLQuery.java @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2009 Mysema Ltd. + * All rights reserved. + * + */ package com.mysema.query.sql; import com.mysema.query.Projectable; diff --git a/querydsl-sql/src/main/java/com/mysema/query/sql/SQLSubQuery.java b/querydsl-sql/src/main/java/com/mysema/query/sql/SQLSubQuery.java index f9720ffcc..648880578 100644 --- a/querydsl-sql/src/main/java/com/mysema/query/sql/SQLSubQuery.java +++ b/querydsl-sql/src/main/java/com/mysema/query/sql/SQLSubQuery.java @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2009 Mysema Ltd. + * All rights reserved. + * + */ package com.mysema.query.sql; import com.mysema.query.DefaultQueryMetadata; diff --git a/querydsl-sql/src/main/java/com/mysema/query/sql/Union.java b/querydsl-sql/src/main/java/com/mysema/query/sql/Union.java index 2e4bc7f57..556279ffc 100644 --- a/querydsl-sql/src/main/java/com/mysema/query/sql/Union.java +++ b/querydsl-sql/src/main/java/com/mysema/query/sql/Union.java @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2009 Mysema Ltd. + * All rights reserved. + * + */ package com.mysema.query.sql; import java.sql.SQLException; @@ -5,6 +10,11 @@ import java.util.List; import com.mysema.query.types.OrderSpecifier; +/** + * @author tiwe + * + * @param + */ public interface Union { Union orderBy(OrderSpecifier... o); diff --git a/querydsl-sql/src/main/java/com/mysema/query/sql/dml/AbstractDMLClause.java b/querydsl-sql/src/main/java/com/mysema/query/sql/dml/AbstractDMLClause.java index 11f6fde0f..398297269 100644 --- a/querydsl-sql/src/main/java/com/mysema/query/sql/dml/AbstractDMLClause.java +++ b/querydsl-sql/src/main/java/com/mysema/query/sql/dml/AbstractDMLClause.java @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2009 Mysema Ltd. + * All rights reserved. + * + */ package com.mysema.query.sql.dml; import java.sql.PreparedStatement; diff --git a/querydsl-sql/src/main/java/com/mysema/query/sql/dml/SQLDeleteClause.java b/querydsl-sql/src/main/java/com/mysema/query/sql/dml/SQLDeleteClause.java index f4723908f..41656eed0 100644 --- a/querydsl-sql/src/main/java/com/mysema/query/sql/dml/SQLDeleteClause.java +++ b/querydsl-sql/src/main/java/com/mysema/query/sql/dml/SQLDeleteClause.java @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2009 Mysema Ltd. + * All rights reserved. + * + */ package com.mysema.query.sql.dml; import java.sql.Connection; diff --git a/querydsl-sql/src/main/java/com/mysema/query/sql/dml/SQLUpdateClause.java b/querydsl-sql/src/main/java/com/mysema/query/sql/dml/SQLUpdateClause.java index ca7fe33af..a08cef1a2 100644 --- a/querydsl-sql/src/main/java/com/mysema/query/sql/dml/SQLUpdateClause.java +++ b/querydsl-sql/src/main/java/com/mysema/query/sql/dml/SQLUpdateClause.java @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2009 Mysema Ltd. + * All rights reserved. + * + */ package com.mysema.query.sql.dml; import java.sql.Connection; diff --git a/querydsl-sql/src/test/java/com/mysema/query/AbstractSQLTest.java b/querydsl-sql/src/test/java/com/mysema/query/AbstractSQLTest.java index 920d2f216..227dde21a 100644 --- a/querydsl-sql/src/test/java/com/mysema/query/AbstractSQLTest.java +++ b/querydsl-sql/src/test/java/com/mysema/query/AbstractSQLTest.java @@ -12,6 +12,7 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.fail; +import java.math.BigDecimal; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; @@ -134,8 +135,15 @@ public abstract class AbstractSQLTest { public void standardTest(){ standardTest.booleanTests(employee.firstname.isNull(), employee2.lastname.isNotNull()); standardTest.dateTests(employee.datefield, employee2.datefield, date); + + // int standardTest.numericCasts(employee.id, employee2.id, 1); standardTest.numericTests(employee.id, employee2.id, 1); + + // BigDecimal +// standardTest.numericCasts(employee.salary, employee2.salary, new BigDecimal("30000.00")); + standardTest.numericTests(employee.salary, employee2.salary, new BigDecimal("30000.00")); + standardTest.stringTests(employee.firstname, employee2.firstname, "Jennifer"); standardTest.timeTests(employee.timefield, employee2.timefield, time); @@ -362,12 +370,12 @@ public abstract class AbstractSQLTest { // uniqueResult assertEquals(min, query().from(employee).uniqueResult(employee.salary.min()).intValue()); -// assertEquals(avg, query().from(employee).uniqueResult(employee.salary.avg()).intValue()); + assertEquals(avg, query().from(employee).uniqueResult(employee.salary.avg()).intValue()); assertEquals(max, query().from(employee).uniqueResult(employee.salary.max()).intValue()); // list assertEquals(min, query().from(employee).list(employee.salary.min()).get(0).intValue()); -// assertEquals(avg, query().from(employee).list(employee.salary.avg()).get(0).intValue()); + assertEquals(avg, query().from(employee).list(employee.salary.avg()).get(0).intValue()); assertEquals(max, query().from(employee).list(employee.salary.max()).get(0).intValue()); }