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: ";

Reply via email to