OSDN Git Service

リリース用に調整
authortaktos9 <taktos9@136db618-7844-41ca-8ac1-fb3fd040db1d>
Sat, 25 Oct 2008 15:59:07 +0000 (15:59 +0000)
committertaktos9 <taktos9@136db618-7844-41ca-8ac1-fb3fd040db1d>
Sat, 25 Oct 2008 15:59:07 +0000 (15:59 +0000)
git-svn-id: http://svn.sourceforge.jp/svnroot/ea2ddl/trunk/ea2ddl@60 136db618-7844-41ca-8ac1-fb3fd040db1d

17 files changed:
ea2ddl-ddl/build-ea2ddl.xml
ea2ddl-ddl/pom.xml
ea2ddl-ddl/src/main/java/jp/sourceforge/ea2ddl/ddl/ConfigKey.java [new file with mode: 0644]
ea2ddl-ddl/src/main/java/jp/sourceforge/ea2ddl/ddl/Constants.java [new file with mode: 0644]
ea2ddl-ddl/src/main/java/jp/sourceforge/ea2ddl/ddl/command/TemplateCommand.java
ea2ddl-ddl/src/main/java/jp/sourceforge/ea2ddl/ddl/factory/impl/ClassificationModelFactoryImpl.java
ea2ddl-ddl/src/main/java/jp/sourceforge/ea2ddl/ddl/factory/impl/DatabaseModelFactoryImpl.java
ea2ddl-ddl/src/main/java/jp/sourceforge/ea2ddl/ddl/model/ColumnModel.java
ea2ddl-ddl/src/main/java/jp/sourceforge/ea2ddl/ddl/model/IndexModel.java
ea2ddl-ddl/src/main/java/jp/sourceforge/ea2ddl/ddl/model/TableModel.java
ea2ddl-ddl/src/main/resources/app-config.dicon
ea2ddl-ddl/src/test/java/jp/sourceforge/ea2ddl/ddl/factory/impl/DatabaseModelFactoryImplTest.java [new file with mode: 0644]
ea2ddl-ddl/src/test/resources/ea2ddl.properties [moved from ea2ddl-ddl/src/main/resources/app.properties with 59% similarity]
ea2ddl-ddl/src/test/resources/jdbc.dicon [new file with mode: 0644]
ea2ddl-ddl/src/test/resources/s2junit4.dicon [new file with mode: 0644]
ea2ddl-ddl/templates/classification.ftl [moved from ea2ddl-ddl/src/main/resources/classification.ftl with 100% similarity]
ea2ddl-ddl/templates/ddl.ftl [moved from ea2ddl-ddl/src/main/resources/ddl.ftl with 77% similarity]

index 123334c..cd741e8 100644 (file)
@@ -8,6 +8,7 @@
 \r
        <path id="classpath">\r
                <pathelement path="${classpathdir}"/>\r
+        <pathelement path="target/test-classes"/>\r
                <pathelement path="${common-classpathdir}"/>\r
                <pathelement path="${dao-classpathdir}"/>\r
                <fileset dir="lib">\r
index e738800..cdf15d9 100644 (file)
                        <artifactId>ea2ddl-dao</artifactId>\r
                        <version>${project.version}</version>\r
                </dependency>\r
+               <dependency>\r
+                       <groupId>${project.groupId}</groupId>\r
+                       <artifactId>ea2ddl-common</artifactId>\r
+                       <version>${project.version}</version>\r
+               </dependency>\r
                \r
                <dependency>\r
                        <groupId>org.freemarker</groupId>\r
diff --git a/ea2ddl-ddl/src/main/java/jp/sourceforge/ea2ddl/ddl/ConfigKey.java b/ea2ddl-ddl/src/main/java/jp/sourceforge/ea2ddl/ddl/ConfigKey.java
new file mode 100644 (file)
index 0000000..2d1a887
--- /dev/null
@@ -0,0 +1,15 @@
+/**\r
+ * \r
+ */\r
+package jp.sourceforge.ea2ddl.ddl;\r
+\r
+/**\r
+ * @author taktos\r
+ * \r
+ */\r
+public class ConfigKey {\r
+\r
+       public static final String ER_PACKAGE_TREE = "er.package.tree";\r
+       public static final String USE_SCHEMA = "use.schema";\r
+\r
+}\r
diff --git a/ea2ddl-ddl/src/main/java/jp/sourceforge/ea2ddl/ddl/Constants.java b/ea2ddl-ddl/src/main/java/jp/sourceforge/ea2ddl/ddl/Constants.java
new file mode 100644 (file)
index 0000000..e2c36ab
--- /dev/null
@@ -0,0 +1,23 @@
+/**\r
+ * \r
+ */\r
+package jp.sourceforge.ea2ddl.ddl;\r
+\r
+/**\r
+ * @author taktos\r
+ * \r
+ */\r
+public class Constants {\r
+\r
+       public static final String STEREOTYPE_TABLE = "table";\r
+       public static final String STEREOTYPE_PRIMARY_KEY = "PK";\r
+       public static final String STEREOTYPE_FOREIGN_KEY = "FK";\r
+       public static final String STEREOTYPE_UNIQUE = "unique";\r
+       public static final String STEREOTYPE_INDEX = "index";\r
+\r
+       public static final String OBJECT_PROPERTIES_OWNER = "OWNER";\r
+\r
+       public static final String OBJECT_TYPE_NOTE = "Note";\r
+\r
+       public static final String SUPPRESS_COMMON_COLUMN = "SUPPRESS_COMMON_COLUMN";\r
+}\r
index 2e6a2ff..b2c2670 100644 (file)
@@ -25,7 +25,7 @@ public class TemplateCommand extends AbstractCommand {
        private Logger _logger = Logger.getLogger(TemplateCommand.class);\r
 \r
        protected String _factoryClassName;\r
-       protected String _templateFileDir = "target/classes";\r
+       protected String _templateFileDir = "templates";\r
        protected String _templateFileName;\r
        protected String _templateFileEncoding = "UTF-8";\r
        protected String _outputDirName = "output";\r
index b17218c..3c556a6 100644 (file)
@@ -10,6 +10,8 @@ import jp.sourceforge.ea2ddl.dao.exbhv.TObjectBhv;
 import jp.sourceforge.ea2ddl.dao.exbhv.TPackageBhv;\r
 import jp.sourceforge.ea2ddl.dao.exentity.TObject;\r
 import jp.sourceforge.ea2ddl.dao.exentity.TPackage;\r
+import jp.sourceforge.ea2ddl.ddl.ConfigKey;\r
+import jp.sourceforge.ea2ddl.ddl.Constants;\r
 import jp.sourceforge.ea2ddl.ddl.factory.ModelFactory;\r
 import jp.sourceforge.ea2ddl.ddl.model.ClassificationModel;\r
 import jp.sourceforge.ea2ddl.ddl.model.Model;\r
@@ -43,7 +45,8 @@ public class ClassificationModelFactoryImpl implements ModelFactory {
         */\r
        public Model create() {\r
                final ClassificationModel model = new ClassificationModel();\r
-               final List<TObject> noteList = _tObjectBhv.selectList(_config.getProperty("er.package.tree"), null, "Note");\r
+               final List<TObject> noteList = _tObjectBhv.selectList(_config.getProperty(ConfigKey.ER_PACKAGE_TREE), null,\r
+                               Constants.OBJECT_TYPE_NOTE);\r
                for (TObject note : noteList) {\r
                        model.addClassification(note.getNote());\r
                }\r
index 055aca6..ae45280 100644 (file)
@@ -13,6 +13,7 @@ import jp.sourceforge.ea2ddl.dao.cbean.TOperationparamsCB;
 import jp.sourceforge.ea2ddl.dao.exbhv.TAttributeBhv;\r
 import jp.sourceforge.ea2ddl.dao.exbhv.TConnectorBhv;\r
 import jp.sourceforge.ea2ddl.dao.exbhv.TObjectBhv;\r
+import jp.sourceforge.ea2ddl.dao.exbhv.TObjectconstraintBhv;\r
 import jp.sourceforge.ea2ddl.dao.exbhv.TObjectpropertiesBhv;\r
 import jp.sourceforge.ea2ddl.dao.exbhv.TOperationBhv;\r
 import jp.sourceforge.ea2ddl.dao.exbhv.TOperationparamsBhv;\r
@@ -23,10 +24,13 @@ import jp.sourceforge.ea2ddl.dao.exentity.TObject;
 import jp.sourceforge.ea2ddl.dao.exentity.TOperation;\r
 import jp.sourceforge.ea2ddl.dao.exentity.TOperationparams;\r
 import jp.sourceforge.ea2ddl.dao.exentity.TPackage;\r
+import jp.sourceforge.ea2ddl.ddl.ConfigKey;\r
+import jp.sourceforge.ea2ddl.ddl.Constants;\r
 import jp.sourceforge.ea2ddl.ddl.factory.ModelFactory;\r
 import jp.sourceforge.ea2ddl.ddl.model.ColumnModel;\r
 import jp.sourceforge.ea2ddl.ddl.model.DatabaseModel;\r
 import jp.sourceforge.ea2ddl.ddl.model.ForeignKeyModel;\r
+import jp.sourceforge.ea2ddl.ddl.model.IndexModel;\r
 import jp.sourceforge.ea2ddl.ddl.model.PrimaryKeyModel;\r
 import jp.sourceforge.ea2ddl.ddl.model.TableModel;\r
 import jp.sourceforge.ea2ddl.ddl.model.UniqueModel;\r
@@ -46,6 +50,7 @@ public class DatabaseModelFactoryImpl implements ModelFactory {
        private TPackageBhv _tPackageBhv;\r
        private TObjectBhv _tObjectBhv;\r
        private TObjectpropertiesBhv _tObjectpropertiesBhv;\r
+       private TObjectconstraintBhv _tObjectconstraintBhv;\r
        private TAttributeBhv _tAttributeBhv;\r
        private TConnectorBhv _tConnectorBhv;\r
        private TOperationBhv _tOperationBhv;\r
@@ -72,6 +77,11 @@ public class DatabaseModelFactoryImpl implements ModelFactory {
        }\r
 \r
        @Binding\r
+       public void setTObjectconstraintBhv(TObjectconstraintBhv objectconstraintBhv) {\r
+               _tObjectconstraintBhv = objectconstraintBhv;\r
+       }\r
+\r
+       @Binding\r
        public void setTAttributeBhv(TAttributeBhv attributeBhv) {\r
                _tAttributeBhv = attributeBhv;\r
        }\r
@@ -98,8 +108,8 @@ public class DatabaseModelFactoryImpl implements ModelFactory {
         */\r
        public DatabaseModel create() {\r
                final DatabaseModel dbModel = new DatabaseModel();\r
-               final TPackage pkg = getPackage(_config.getProperty("er.package.tree"));\r
-               final List<TObject> objectList = _tObjectBhv.selectListByStereotype(pkg, "table");\r
+               final TPackage pkg = getPackage();\r
+               final List<TObject> objectList = _tObjectBhv.selectListByStereotype(pkg, Constants.STEREOTYPE_TABLE);\r
                _log.debug(objectList.size());\r
 \r
                for (TObject object : objectList) {\r
@@ -109,8 +119,8 @@ public class DatabaseModelFactoryImpl implements ModelFactory {
                return dbModel;\r
        }\r
 \r
-       protected TPackage getPackage(String packageTree) {\r
-               return _tPackageBhv.selectPackage(packageTree);\r
+       protected TPackage getPackage() {\r
+               return _tPackageBhv.selectPackage(_config.getProperty(ConfigKey.ER_PACKAGE_TREE));\r
        }\r
 \r
        protected TableModel generateTableModel(TObject tobject) {\r
@@ -118,13 +128,15 @@ public class DatabaseModelFactoryImpl implements ModelFactory {
                table.setName(tobject.getName());\r
                table.setAlias(tobject.getAlias());\r
                table.setNote(tobject.getNote());\r
-               if (_config.getBoolean("use.schema")) {\r
-                       table.setSchema(_tObjectpropertiesBhv.getValue(tobject, "OWNER"));\r
+               if (_config.getBoolean(_config.getProperty(ConfigKey.USE_SCHEMA))) {\r
+                       table.setSchema(_tObjectpropertiesBhv.getValue(tobject, Constants.OBJECT_PROPERTIES_OWNER));\r
                }\r
+               table.setSuppressCommonColumn(_tObjectconstraintBhv.hasConstraint(tobject, Constants.SUPPRESS_COMMON_COLUMN));\r
                generateColumnModel(table, tobject);\r
                generatePKModel(table, tobject);\r
                generateFKModel(table, tobject);\r
                generateUniqueModel(table, tobject);\r
+               generateIndexModel(table, tobject);\r
 \r
                return table;\r
        }\r
@@ -146,7 +158,8 @@ public class DatabaseModelFactoryImpl implements ModelFactory {
        }\r
 \r
        protected void generatePKModel(TableModel table, TObject tobject) {\r
-               final ListResultBean<TOperation> pkList = _tOperationBhv.selectOperation(tobject, "PK");\r
+               final ListResultBean<TOperation> pkList = _tOperationBhv.selectOperation(tobject,\r
+                               Constants.STEREOTYPE_PRIMARY_KEY);\r
                if (pkList.isEmpty()) {\r
                        return;\r
                }\r
@@ -163,7 +176,8 @@ public class DatabaseModelFactoryImpl implements ModelFactory {
        }\r
 \r
        protected void generateFKModel(TableModel table, TObject tobject) {\r
-               final ListResultBean<TOperation> fkList = _tOperationBhv.selectOperation(tobject, "FK");\r
+               final ListResultBean<TOperation> fkList = _tOperationBhv.selectOperation(tobject,\r
+                               Constants.STEREOTYPE_FOREIGN_KEY);\r
                for (TOperation opeFK : fkList) {\r
                        final ForeignKeyModel fkModel = new ForeignKeyModel();\r
                        fkModel.setName(opeFK.getName());\r
@@ -201,7 +215,7 @@ public class DatabaseModelFactoryImpl implements ModelFactory {
        protected void generateUniqueModel(TableModel table, TObject tobject) {\r
                final TOperationCB cb = new TOperationCB();\r
                cb.query().setObjectId_Equal(tobject.getObjectId());\r
-               cb.query().setStereotype_Equal("unique");\r
+               cb.query().setStereotype_Equal(Constants.STEREOTYPE_UNIQUE);\r
                final ListResultBean<TOperation> uniqueList = _tOperationBhv.selectList(cb);\r
                for (TOperation unique : uniqueList) {\r
                        final UniqueModel uniqueModel = new UniqueModel();\r
@@ -216,4 +230,18 @@ public class DatabaseModelFactoryImpl implements ModelFactory {
                        table.addUnique(uniqueModel);\r
                }\r
        }\r
+\r
+       protected void generateIndexModel(TableModel table, TObject tobject) {\r
+               final ListResultBean<TOperation> indexList = _tOperationBhv.selectOperation(tobject, "index");\r
+               for (TOperation index : indexList) {\r
+                       final IndexModel indexModel = new IndexModel();\r
+                       indexModel.setName(index.getName());\r
+                       final ListResultBean<TOperationparams> params = _tOperationparamsBhv.selectOperationParams(index);\r
+                       for (TOperationparams param : params) {\r
+                               indexModel.addColumn(param.getName());\r
+                       }\r
+                       table.addIndex(indexModel);\r
+               }\r
+       }\r
+\r
 }\r
index 2a7d5b7..e6ed217 100644 (file)
@@ -6,7 +6,7 @@ package jp.sourceforge.ea2ddl.ddl.model;
 import java.io.Serializable;\r
 \r
 /**\r
- * @author takiguchi\r
+ * @author taktos\r
  * \r
  */\r
 public class ColumnModel implements Serializable {\r
index f41a846..c3c139c 100644 (file)
@@ -4,6 +4,7 @@
 package jp.sourceforge.ea2ddl.ddl.model;\r
 \r
 import java.io.Serializable;\r
+import java.util.ArrayList;\r
 import java.util.List;\r
 \r
 /**\r
@@ -24,10 +25,21 @@ public class IndexModel implements Serializable {
        }\r
 \r
        public List<String> getColumnList() {\r
+               if (_columnList == null) {\r
+                       synchronized (this) {\r
+                               if (_columnList == null) {\r
+                                       _columnList = new ArrayList<String>();\r
+                               }\r
+                       }\r
+               }\r
                return _columnList;\r
        }\r
 \r
        public void setColumnList(List<String> columnList) {\r
                _columnList = columnList;\r
        }\r
+\r
+       public void addColumn(String column) {\r
+               getColumnList().add(column);\r
+       }\r
 }\r
index 7485d4d..ccb323e 100644 (file)
@@ -18,6 +18,8 @@ public class TableModel implements Serializable {
        private String note;\r
        private String schema;\r
 \r
+       private boolean suppressCommonColumn = false;\r
+\r
        private List<ColumnModel> _columnList;\r
        private PrimaryKeyModel _primaryKey;\r
        private List<UniqueModel> _uniqueList;\r
@@ -56,6 +58,14 @@ public class TableModel implements Serializable {
                this.schema = schema;\r
        }\r
 \r
+       public boolean isSuppressCommonColumn() {\r
+               return suppressCommonColumn;\r
+       }\r
+\r
+       public void setSuppressCommonColumn(boolean suppressCommonColumn) {\r
+               this.suppressCommonColumn = suppressCommonColumn;\r
+       }\r
+\r
        public List<ColumnModel> getColumnList() {\r
                if (_columnList == null) {\r
                        synchronized (this) {\r
@@ -122,6 +132,13 @@ public class TableModel implements Serializable {
        }\r
 \r
        public List<IndexModel> getIndexList() {\r
+               if (_indexList == null) {\r
+                       synchronized (this) {\r
+                               if (_indexList == null) {\r
+                                       _indexList = new ArrayList<IndexModel>();\r
+                               }\r
+                       }\r
+               }\r
                return _indexList;\r
        }\r
 \r
@@ -129,4 +146,7 @@ public class TableModel implements Serializable {
                _indexList = indexList;\r
        }\r
 \r
+       public void addIndex(IndexModel indexModel) {\r
+               getIndexList().add(indexModel);\r
+       }\r
 }\r
index 958db57..99f5bb6 100644 (file)
@@ -5,7 +5,7 @@
        <component name="config"\r
                class="jp.sourceforge.ea2ddl.common.config.impl.ConfigImpl">\r
                <initMethod name="load">\r
-                       <arg>"app.properties"</arg>\r
+                       <arg>"ea2ddl.properties"</arg>\r
                </initMethod>\r
        </component>\r
 </components>
\ No newline at end of file
diff --git a/ea2ddl-ddl/src/test/java/jp/sourceforge/ea2ddl/ddl/factory/impl/DatabaseModelFactoryImplTest.java b/ea2ddl-ddl/src/test/java/jp/sourceforge/ea2ddl/ddl/factory/impl/DatabaseModelFactoryImplTest.java
new file mode 100644 (file)
index 0000000..fe3cd56
--- /dev/null
@@ -0,0 +1,32 @@
+package jp.sourceforge.ea2ddl.ddl.factory.impl;\r
+\r
+import static org.junit.Assert.assertEquals;\r
+import static org.junit.Assert.assertNotNull;\r
+import jp.sourceforge.ea2ddl.dao.exentity.TPackage;\r
+import jp.sourceforge.ea2ddl.ddl.model.DatabaseModel;\r
+\r
+import org.junit.Test;\r
+import org.junit.runner.RunWith;\r
+import org.seasar.framework.unit.Seasar2;\r
+import org.seasar.framework.unit.annotation.RootDicon;\r
+\r
+@RunWith(Seasar2.class)\r
+@RootDicon("ea2ddl.dicon")\r
+public class DatabaseModelFactoryImplTest {\r
+\r
+       DatabaseModelFactoryImpl factory;\r
+\r
+       @Test\r
+       public void testCreate() {\r
+               final DatabaseModel model = factory.create();\r
+               assertNotNull(model);\r
+       }\r
+\r
+       @Test\r
+       public void testGetPackage() {\r
+               final TPackage pkg = factory.getPackage();\r
+               assertNotNull(pkg);\r
+               assertEquals("EXAMPLEDB", pkg.getName());\r
+       }\r
+\r
+}\r
@@ -1 +1,2 @@
-er.package.tree=\u30d3\u30e5\u30fc/\u30af\u30e9\u30b9\u30d3\u30e5\u30fc/ER\u56f3/EXAMPLEDB
\ No newline at end of file
+er.package.tree=\u30d3\u30e5\u30fc/\u30af\u30e9\u30b9\u30d3\u30e5\u30fc/ER\u56f3/EXAMPLEDB\r
+use.schema=false
\ No newline at end of file
diff --git a/ea2ddl-ddl/src/test/resources/jdbc.dicon b/ea2ddl-ddl/src/test/resources/jdbc.dicon
new file mode 100644 (file)
index 0000000..0d07484
--- /dev/null
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.4//EN"\r
+       "http://www.seasar.org/dtd/components24.dtd">\r
+<components namespace="jdbc">\r
+       <include path="jta.dicon"/>\r
+\r
+       <!-- for MS-Access -->\r
+       <component name="xaDataSource"\r
+               class="org.seasar.extension.dbcp.impl.XADataSourceImpl">\r
+               <property name="driverClassName">\r
+                       "sun.jdbc.odbc.JdbcOdbcDriver"\r
+               </property>\r
+               <property name="URL">\r
+                       "jdbc:odbc:exampledb"\r
+               </property>\r
+               <property name="user">"sa"</property>\r
+               <property name="password">""</property>\r
+               <initMethod name="addProperty">\r
+                       <arg>"charSet"</arg>\r
+                       <arg>"MS932"</arg>\r
+               </initMethod>\r
+       </component>\r
+\r
+       <component name="connectionPool"\r
+               class="org.seasar.extension.dbcp.impl.ConnectionPoolImpl">\r
+               <property name="timeout">600</property>\r
+               <property name="maxPoolSize">10</property>\r
+               <property name="allowLocalTx">true</property>\r
+               <destroyMethod name="close"/>\r
+       </component>\r
+\r
+       <component name="DataSource"\r
+               class="org.seasar.extension.dbcp.impl.DataSourceImpl"\r
+       />\r
+\r
+       <!-- from JNDI -->\r
+       <!--\r
+       <component name="DataSource"\r
+               class="javax.sql.DataSource">\r
+               @org.seasar.extension.j2ee.JndiResourceLocator@lookup("java:comp/env/jdbc/DataSource")\r
+       </component>\r
+       -->\r
+\r
+       <!--\r
+       <component name="dataSource"\r
+               class="org.seasar.extension.datasource.impl.SelectableDataSourceProxy"/>\r
+       -->\r
+</components>
\ No newline at end of file
diff --git a/ea2ddl-ddl/src/test/resources/s2junit4.dicon b/ea2ddl-ddl/src/test/resources/s2junit4.dicon
new file mode 100644 (file)
index 0000000..b183900
--- /dev/null
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.4//EN"\r
+       "http://www.seasar.org/dtd/components24.dtd">\r
+<components namespace="s2junit4">\r
+       \r
+       <component name="context" class="org.seasar.framework.unit.impl.InternalTestContextImpl"/>\r
+\r
+       <component class="org.seasar.framework.unit.impl.DataAccessorImpl"/>\r
+\r
+       <component class="org.seasar.framework.unit.impl.ConfigFileIncluderImpl">\r
+               <initMethod name="addConfigFile">\r
+                       <arg>"j2ee.dicon"</arg>\r
+               </initMethod>\r
+               <initMethod name="addConfigFile">\r
+                       <arg>context.testClassShortName + ".dicon"</arg>\r
+               </initMethod>\r
+       </component>\r
+\r
+       <component class="org.seasar.framework.unit.impl.TestDataPreparerImpl">\r
+               <initMethod name="addTestDataXlsPath">\r
+                       <arg>context.testClassShortName + "_" + context.testMethodName + ".xls"</arg>\r
+               </initMethod>\r
+               <initMethod name="addTestDataXlsPath">\r
+                       <arg>context.testClassShortName + ".xls"</arg>\r
+               </initMethod>\r
+       </component>\r
+\r
+       <component class="org.seasar.framework.unit.impl.ExpectedDataReaderImpl">\r
+               <initMethod name="addExpectedDataXlsPath">\r
+                       <arg>context.testClassShortName + "_" + context.testMethodName + "_Expected" + ".xls"</arg>\r
+               </initMethod>\r
+       </component>\r
+</components>
\ No newline at end of file
similarity index 77%
rename from ea2ddl-ddl/src/main/resources/ddl.ftl
rename to ea2ddl-ddl/templates/ddl.ftl
index 72da61f..1ae4af5 100644 (file)
@@ -13,6 +13,13 @@ DROP TABLE ${table.name};
 CREATE TABLE ${table.name} (\r
 <#list table.columnList as column>     ${column.name} ${column.definition}<#if column_has_next>,</#if>\r
 </#list>\r
+<#if !table.suppressCommonColumn>\r
+       , CREATE_USER   VARCHAR2(20)    NOT NULL\r
+       , CREATE_DATETIME       DATE    NOT NULL\r
+       , UPDATE_USER   VARCHAR2(20)    NOT NULL\r
+       , UPDATE_DATETIME       DATE    NOT NULL\r
+       , VERSION_NO    NUMBER(8)       NOT NULL\r
+</#if>\r
 )\r
 ;\r
 <#if table.primaryKey??>ALTER TABLE ${table.name} ADD CONSTRAINT ${table.primaryKey.name}\r
@@ -23,6 +30,10 @@ CREATE TABLE ${table.name} (
        UNIQUE (<#list unique.columnNameList as columnName>${columnName}<#if columnName_has_next>,</#if></#list>)\r
 ;\r
 </#list>\r
+<#list table.indexList as index>CREATE INDEX ${index.name} ON ${table.name}\r
+       (<#list index.columnList as columnName>${columnName}<#if columnName_has_next>,</#if></#list>)\r
+;\r
+</#list>\r
 <#if table.alias?? || table.note??>\r
 COMMENT ON TABLE ${table.name} IS '<#if table.alias??>${table.alias}:</#if><#if table.note??>${table.note}</#if>'\r
 ;\r