You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2008/11/22 13:54:37 UTC
svn commit: r719842 - in
/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne:
access/types/UUIDType.java dba/derby/DerbyAdapter.java
dba/derby/DerbyUUIDType.java
Author: aadamchik
Date: Sat Nov 22 04:54:37 2008
New Revision: 719842
URL: http://svn.apache.org/viewvc?rev=719842&view=rev
Log:
adding UUID support for Derby
Added:
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/derby/DerbyUUIDType.java
Modified:
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/types/UUIDType.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/derby/DerbyAdapter.java
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/types/UUIDType.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/types/UUIDType.java?rev=719842&r1=719841&r2=719842&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/types/UUIDType.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/types/UUIDType.java Sat Nov 22 04:54:37 2008
@@ -79,7 +79,7 @@
statement.setNull(pos, type);
}
else if (value instanceof UUID) {
- statement.setObject(pos, value);
+ statement.setObject(pos, value, type);
}
else {
throw new IllegalArgumentException("Expected java.util.UUID, got "
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/derby/DerbyAdapter.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/derby/DerbyAdapter.java?rev=719842&r1=719841&r2=719842&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/derby/DerbyAdapter.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/derby/DerbyAdapter.java Sat Nov 22 04:54:37 2008
@@ -86,6 +86,7 @@
// address Derby driver inability to handle java.lang.Short and java.lang.Byte
map.registerType(new ShortType(true));
map.registerType(new ByteType(true));
+ map.registerType(new DerbyUUIDType());
}
/**
Added: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/derby/DerbyUUIDType.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/derby/DerbyUUIDType.java?rev=719842&view=auto
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/derby/DerbyUUIDType.java (added)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/derby/DerbyUUIDType.java Sat Nov 22 04:54:37 2008
@@ -0,0 +1,51 @@
+/*****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ ****************************************************************/
+package org.apache.cayenne.dba.derby;
+
+import java.sql.PreparedStatement;
+import java.util.UUID;
+
+import org.apache.cayenne.access.types.UUIDType;
+
+/**
+ * @since 3.0
+ */
+class DerbyUUIDType extends UUIDType {
+
+ @Override
+ public void setJdbcObject(
+ PreparedStatement statement,
+ Object value,
+ int pos,
+ int type,
+ int scale) throws Exception {
+
+ // Derby requires explicit UUID to string conversion
+ if (value == null) {
+ statement.setNull(pos, type);
+ }
+ else if (value instanceof UUID) {
+ statement.setObject(pos, value.toString(), type);
+ }
+ else {
+ throw new IllegalArgumentException("Expected java.util.UUID, got "
+ + value.getClass().getName());
+ }
+ }
+}