From 84ec7a8677379e4c0bedce80b5d8702e4057d2c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20Westk=C3=A4mper?= Date: Sun, 8 Jun 2014 18:37:23 +0300 Subject: [PATCH] Use total/decimal digits instead of size/digits --- .../docbook/en-US/content/tutorials/sql.xml | 14 ++++----- .../maven/AbstractMetaDataExportMojo.java | 4 ++- .../mysema/query/maven/NumericMapping.java | 5 ++-- .../com/mysema/query/sql/Configuration.java | 8 ++--- .../com/mysema/query/sql/JDBCTypeMapping.java | 29 +++++++++---------- 5 files changed, 31 insertions(+), 29 deletions(-) diff --git a/querydsl-docs/src/main/docbook/en-US/content/tutorials/sql.xml b/querydsl-docs/src/main/docbook/en-US/content/tutorials/sql.xml index 43b17bbe6..8ea98f762 100644 --- a/querydsl-docs/src/main/docbook/en-US/content/tutorials/sql.xml +++ b/querydsl-docs/src/main/docbook/en-US/content/tutorials/sql.xml @@ -276,8 +276,8 @@ - Size - Digits + Total digits + Decimal digits Type @@ -321,18 +321,18 @@ - They can be customized for specific size/digits combinations like this: + They can be customized for specific total/decimal digits combinations like this: - 1 - 0 + 1 + 0 java.lang.Byte -]]> - +]]> + Imports can be used to add cross-schema foreign keys support. Compared to APT based code generation certain functionality is not available such as QueryDelegate annotation handling. diff --git a/querydsl-maven-plugin/src/main/java/com/mysema/query/maven/AbstractMetaDataExportMojo.java b/querydsl-maven-plugin/src/main/java/com/mysema/query/maven/AbstractMetaDataExportMojo.java index 806003ec4..b56f41c30 100644 --- a/querydsl-maven-plugin/src/main/java/com/mysema/query/maven/AbstractMetaDataExportMojo.java +++ b/querydsl-maven-plugin/src/main/java/com/mysema/query/maven/AbstractMetaDataExportMojo.java @@ -388,7 +388,9 @@ public class AbstractMetaDataExportMojo extends AbstractMojo{ } if (numericMappings != null) { for (NumericMapping mapping : numericMappings) { - configuration.registerNumeric(mapping.size, mapping.digits, Class.forName(mapping.javaType)); + int total = Math.max(mapping.size, mapping.total); + int decimal = Math.max(mapping.digits, mapping.decimal); + configuration.registerNumeric(total, decimal, Class.forName(mapping.javaType)); } } if (columnComparatorClass != null) { diff --git a/querydsl-maven-plugin/src/main/java/com/mysema/query/maven/NumericMapping.java b/querydsl-maven-plugin/src/main/java/com/mysema/query/maven/NumericMapping.java index 37837d515..44ac80a98 100644 --- a/querydsl-maven-plugin/src/main/java/com/mysema/query/maven/NumericMapping.java +++ b/querydsl-maven-plugin/src/main/java/com/mysema/query/maven/NumericMapping.java @@ -19,9 +19,10 @@ package com.mysema.query.maven; */ public class NumericMapping { - public int size; + @Deprecated + public int size, digits; - public int digits; + public int total, decimal; public String javaType; diff --git a/querydsl-sql/src/main/java/com/mysema/query/sql/Configuration.java b/querydsl-sql/src/main/java/com/mysema/query/sql/Configuration.java index af0ad65ea..657ab2343 100644 --- a/querydsl-sql/src/main/java/com/mysema/query/sql/Configuration.java +++ b/querydsl-sql/src/main/java/com/mysema/query/sql/Configuration.java @@ -319,12 +319,12 @@ public final class Configuration { /** * Override the binding for the given NUMERIC type * - * @param size - * @param digits + * @param total total amount of digits + * @param decimal amount of fractional digits * @param javaType */ - public void registerNumeric(int size, int digits, Class javaType) { - jdbcTypeMapping.registerNumeric(size, digits, javaType); + public void registerNumeric(int total, int decimal, Class javaType) { + jdbcTypeMapping.registerNumeric(total, decimal, javaType); } /** diff --git a/querydsl-sql/src/main/java/com/mysema/query/sql/JDBCTypeMapping.java b/querydsl-sql/src/main/java/com/mysema/query/sql/JDBCTypeMapping.java index f3d64ae71..1985741ab 100644 --- a/querydsl-sql/src/main/java/com/mysema/query/sql/JDBCTypeMapping.java +++ b/querydsl-sql/src/main/java/com/mysema/query/sql/JDBCTypeMapping.java @@ -13,6 +13,7 @@ */ package com.mysema.query.sql; +import javax.annotation.Nullable; import java.math.BigDecimal; import java.math.BigInteger; import java.sql.Blob; @@ -20,8 +21,6 @@ import java.sql.Types; import java.util.HashMap; import java.util.Map; -import javax.annotation.Nullable; - import com.mysema.commons.lang.Pair; import com.mysema.query.sql.types.Null; @@ -108,30 +107,30 @@ public final class JDBCTypeMapping { sqlTypes.put(javaType, sqlType); } - public void registerNumeric(int size, int digits, Class javaType) { - numericTypes.put(Pair.of(size, digits), javaType); + public void registerNumeric(int total, int decimal, Class javaType) { + numericTypes.put(Pair.of(total, decimal), javaType); } - private Class getNumericClass(int size, int digits) { - Pair key = Pair.of(size, digits); + private Class getNumericClass(int total, int decimal) { + Pair key = Pair.of(total, decimal); if (numericTypes.containsKey(key)) { return numericTypes.get(key); - } else if (digits <= 0) { - if (size > 18 || size == 0) { + } else if (decimal <= 0) { + if (total > 18 || total == 0) { return BigInteger.class; - } else if (size > 9 || size == 0) { + } else if (total > 9 || total == 0) { return Long.class; - } else if (size > 4) { + } else if (total > 4) { return Integer.class; - } else if (size > 2) { + } else if (total > 2) { return Short.class; - } else if (size > 0) { + } else if (total > 0) { return Byte.class; } else { return Boolean.class; } } else { - if (size > 16) { + if (total > 16) { return BigDecimal.class; } else { return Double.class; @@ -140,9 +139,9 @@ public final class JDBCTypeMapping { } @Nullable - public Class get(int sqlType, int size, int digits) { + public Class get(int sqlType, int total, int decimal) { if (sqlType == Types.NUMERIC || sqlType == Types.DECIMAL) { - return getNumericClass(size, digits); + return getNumericClass(total, decimal); } else if (types.containsKey(sqlType)) { return types.get(sqlType); } else {