This is an automated email from the ASF dual-hosted git repository. ntimofeev pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/cayenne.git
commit 10f405f4d2377f16854a44fe97a483e5c24d89fe Author: Nikita Timofeev <stari...@gmail.com> AuthorDate: Wed Aug 24 17:16:25 2022 +0300 Add utility method to get DbAttribute Java type --- .../src/main/java/org/apache/cayenne/access/jdbc/BatchAction.java | 2 +- .../java/org/apache/cayenne/access/jdbc/ColumnDescriptor.java | 2 +- .../cayenne/access/translator/select/ResultNodeDescriptor.java | 2 +- .../src/main/java/org/apache/cayenne/map/DbAttribute.java | 8 ++++++++ 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/BatchAction.java b/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/BatchAction.java index 03b105614..131aea3c4 100644 --- a/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/BatchAction.java +++ b/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/BatchAction.java @@ -280,7 +280,7 @@ public class BatchAction extends BaseSQLAction { // use column name from result set, but type and Java class from DB attribute columns[0] = new ColumnDescriptor(keysRS.getMetaData(), 1); columns[0].setJdbcType(key.getType()); - columns[0].setJavaClass(TypesMapping.getJavaBySqlType(key)); + columns[0].setJavaClass(key.getJavaClass()); builder.setColumns(columns); } else { builder.setResultSet(keysRS); diff --git a/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/ColumnDescriptor.java b/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/ColumnDescriptor.java index 184962e65..21397de1c 100644 --- a/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/ColumnDescriptor.java +++ b/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/ColumnDescriptor.java @@ -91,7 +91,7 @@ public class ColumnDescriptor { this.attribute = attribute; this.namePrefix = tableAlias; - this.javaClass = TypesMapping.getJavaBySqlType(attribute); + this.javaClass = attribute.getJavaClass(); if (attribute.getEntity() != null) { this.tableName = attribute.getEntity().getName(); diff --git a/cayenne-server/src/main/java/org/apache/cayenne/access/translator/select/ResultNodeDescriptor.java b/cayenne-server/src/main/java/org/apache/cayenne/access/translator/select/ResultNodeDescriptor.java index cae34bd70..5d36284ff 100644 --- a/cayenne-server/src/main/java/org/apache/cayenne/access/translator/select/ResultNodeDescriptor.java +++ b/cayenne-server/src/main/java/org/apache/cayenne/access/translator/select/ResultNodeDescriptor.java @@ -105,7 +105,7 @@ class ResultNodeDescriptor { return property.getType().getCanonicalName(); } if (getDbAttribute() != null) { - return TypesMapping.getJavaBySqlType(getDbAttribute()); + return getDbAttribute().getJavaClass(); } return null; } diff --git a/cayenne-server/src/main/java/org/apache/cayenne/map/DbAttribute.java b/cayenne-server/src/main/java/org/apache/cayenne/map/DbAttribute.java index f9b93bc20..37fae8174 100644 --- a/cayenne-server/src/main/java/org/apache/cayenne/map/DbAttribute.java +++ b/cayenne-server/src/main/java/org/apache/cayenne/map/DbAttribute.java @@ -279,6 +279,14 @@ public class DbAttribute extends Attribute<DbEntity, DbAttribute, DbRelationship this.scale = scale; } + /** + * @return java class guessed by the JDBC type of this attribute + * @since 4.3 + */ + public String getJavaClass() { + return TypesMapping.getJavaBySqlType(this); + } + @Override public String toString() { String res = "DbAttr: ";