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 2009/02/18 17:13:35 UTC
svn commit: r745555 -
/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/h2/H2MergerFactory.java
Author: aadamchik
Date: Wed Feb 18 16:13:35 2009
New Revision: 745555
URL: http://svn.apache.org/viewvc?rev=745555&view=rev
Log:
CAY-289 Implement Quoting of identifiers
patch by Olga Tkachova - adding merger support for H2. not directly related to CAY-289
Modified:
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/h2/H2MergerFactory.java
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/h2/H2MergerFactory.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/h2/H2MergerFactory.java?rev=745555&r1=745554&r2=745555&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/h2/H2MergerFactory.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/h2/H2MergerFactory.java Wed Feb 18 16:13:35 2009
@@ -19,23 +19,29 @@
package org.apache.cayenne.dba.h2;
+import java.util.Collections;
+import java.util.List;
+
+import org.apache.cayenne.dba.DbAdapter;
import org.apache.cayenne.map.DbAttribute;
import org.apache.cayenne.map.DbEntity;
import org.apache.cayenne.merge.MergerFactory;
import org.apache.cayenne.merge.MergerToken;
+import org.apache.cayenne.merge.SetAllowNullToDb;
import org.apache.cayenne.merge.SetColumnTypeToDb;
/**
* @since 3.0
*/
public class H2MergerFactory extends MergerFactory {
-
+
@Override
public MergerToken createSetColumnTypeToDb(
final DbEntity entity,
DbAttribute columnOriginal,
final DbAttribute columnNew) {
return new SetColumnTypeToDb(entity, columnOriginal, columnNew) {
+
@Override
protected void appendPrefix(StringBuffer sqlBuffer) {
sqlBuffer.append("ALTER TABLE ");
@@ -47,4 +53,23 @@
};
}
+ @Override
+ public MergerToken createSetAllowNullToDb(DbEntity entity, DbAttribute column) {
+ return new SetAllowNullToDb(entity, column) {
+
+ @Override
+ public List<String> createSql(DbAdapter adapter) {
+ StringBuilder sqlBuffer = new StringBuilder();
+
+ sqlBuffer.append("ALTER TABLE ");
+ sqlBuffer.append(getEntity().getFullyQualifiedName());
+ sqlBuffer.append(" ALTER COLUMN ");
+ sqlBuffer.append(getColumn().getName());
+ sqlBuffer.append(" SET NULL");
+
+ return Collections.singletonList(sqlBuffer.toString());
+ }
+
+ };
+ }
}