You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by nt...@apache.org on 2022/08/24 14:16:44 UTC
[cayenne] 02/02: Add utility method to get DbAttribute Java type
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 <st...@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: ";