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 {