| Title: maven2-cdbimport |
| |
| <P><TT>cdbimport</TT> is a Maven 2 mojo that that uses Cayenne to generate a DataMap based on an existing database schema. By default, it is bound to the <TT>generate-sources</TT> phase. This allows you to generate your DataMap prior to building your project, which may be necessary if you are also using the <A href="maven2-cgen.html" title="maven2-cgen">cgen</A> task.</P> |
| |
| <H3><A name="maven2-cdbimport-Parameters%28asXMLelements%29"></A>Parameters (as XML elements)</H3> |
| |
| <DIV class="table-wrap"> |
| <TABLE class="confluenceTable"><TBODY> |
| <TR> |
| <TH class="confluenceTh"> Attribute </TH> |
| <TH class="confluenceTh"> Description </TH> |
| <TH class="confluenceTh"> Required </TH> |
| </TR> |
| <TR> |
| <TD class="confluenceTd"> map </TD> |
| <TD class="confluenceTd"> DataMap XML file to use as a schema descriptor. </TD> |
| <TD class="confluenceTd"> Yes </TD> |
| </TR> |
| <TR> |
| <TD class="confluenceTd"> overwriteExisting </TD> |
| <TD class="confluenceTd"> Indicates whether existing DB and object entities should be overwritten. This is an all-or-nothing setting. If you need finer granularity, please use the Cayenne Modeler. Default is <TT>true</TT>. </TD> |
| <TD class="confluenceTd"> No </TD> |
| </TR> |
| <TR> |
| <TD class="confluenceTd"> schemaName </TD> |
| <TD class="confluenceTd"> Database schema to use for importing. </TD> |
| <TD class="confluenceTd"> No </TD> |
| </TR> |
| <TR> |
| <TD class="confluenceTd"> tablePattern </TD> |
| <TD class="confluenceTd"> Pattern to match tables against for import. Default is to match all tables. </TD> |
| <TD class="confluenceTd"> No </TD> |
| </TR> |
| <TR> |
| <TD class="confluenceTd"> importProcedures </TD> |
| <TD class="confluenceTd"> Indicates whether stored procedures should be imported. Default is <TT>false</TT>. </TD> |
| <TD class="confluenceTd"> No </TD> |
| </TR> |
| <TR> |
| <TD class="confluenceTd"> procedurePattern </TD> |
| <TD class="confluenceTd"> Pattern to match stored procedures against for import. Default is to match all stored procedures. This value is only meaningful if <TT>importProcedures</TT> is <TT>true</TT>. </TD> |
| <TD class="confluenceTd"> No </TD> |
| </TR> |
| <TR> |
| <TD class="confluenceTd"> meaningfulPk </TD> |
| <TD class="confluenceTd"> Indicates whether primary keys should be mapped as attributes of the object entity. Default is <TT>false</TT>. </TD> |
| <TD class="confluenceTd"> No </TD> |
| </TR> |
| <TR> |
| <TD class="confluenceTd"> namingStrategy </TD> |
| <TD class="confluenceTd"> The naming strategy used for mapping database names to object entity names. Default is <TT>org.apache.cayenne.map.naming.SmartNamingStrategy</TT>. </TD> |
| <TD class="confluenceTd"> No </TD> |
| </TR> |
| <TR> |
| <TD class="confluenceTd"> adapter </TD> |
| <TD class="confluenceTd"> Java class name implementing org.apache.cayenne.dba.DbAdapter. While this attribute is optional (a generic JdbcAdapter is used if not set), it is highly recommended to specify correct target adapter. </TD> |
| <TD class="confluenceTd"> No (but strongly recommended) </TD> |
| </TR> |
| <TR> |
| <TD class="confluenceTd"> driver </TD> |
| <TD class="confluenceTd"> A class of JDBC driver to use for the target database. </TD> |
| <TD class="confluenceTd"> Yes </TD> |
| </TR> |
| <TR> |
| <TD class="confluenceTd"> url </TD> |
| <TD class="confluenceTd"> JDBC connection URL of a target database. </TD> |
| <TD class="confluenceTd"> Yes </TD> |
| </TR> |
| <TR> |
| <TD class="confluenceTd"> username </TD> |
| <TD class="confluenceTd"> Database user name. </TD> |
| <TD class="confluenceTd"> No </TD> |
| </TR> |
| <TR> |
| <TD class="confluenceTd"> password </TD> |
| <TD class="confluenceTd"> Database user password. </TD> |
| <TD class="confluenceTd"> No </TD> |
| </TR> |
| </TBODY></TABLE> |
| </DIV> |
| |
| |
| |
| <H3><A name="maven2-cdbimport-Examples"></A>Examples</H3> |
| |
| <P>Load the Maven 2 plugin and configure the <TT>cdbimport</TT> mojo:</P> |
| <DIV class="code panel" style="border-width: 1px;"><DIV class="codeContent panelContent"> |
| <PRE class="code-xml"> |
| <SPAN class="code-tag"><build></SPAN> |
| <SPAN class="code-tag"><plugins></SPAN> |
| <SPAN class="code-tag"><plugin></SPAN> |
| <SPAN class="code-tag"><groupId></SPAN>org.apache.cayenne.plugins<SPAN class="code-tag"></groupId></SPAN> |
| <SPAN class="code-tag"><artifactId></SPAN>maven-cayenne-plugin<SPAN class="code-tag"></artifactId></SPAN> |
| <SPAN class="code-tag"><executions></SPAN> |
| <SPAN class="code-tag"><execution></SPAN> |
| <SPAN class="code-tag"><id></SPAN>cdbimport<SPAN class="code-tag"></id></SPAN> |
| <SPAN class="code-tag"><configuration></SPAN> |
| <SPAN class="code-tag"><SPAN class="code-comment"><!-- Configuration items go in here. See table, above. --></SPAN></SPAN> |
| <SPAN class="code-tag"></configuration></SPAN> |
| <SPAN class="code-tag"><goals></SPAN> |
| <SPAN class="code-tag"><goal></SPAN>cdbimport<SPAN class="code-tag"></goal></SPAN> |
| <SPAN class="code-tag"></goals></SPAN> |
| <SPAN class="code-tag"></execution></SPAN> |
| <SPAN class="code-tag"></executions></SPAN> |
| <SPAN class="code-tag"></plugin></SPAN> |
| <SPAN class="code-tag"></plugins></SPAN> |
| <SPAN class="code-tag"></build></SPAN> |
| </PRE> |
| </DIV></DIV> |
| <P>Here is an example of using <TT>cdbimport</TT> to create DB schema objects on a local HSQLDB database named "bookmarker" from a DataMap located in "main/resources/datamap.map.xml":</P> |
| <DIV class="code panel" style="border-width: 1px;"><DIV class="codeContent panelContent"> |
| <PRE class="code-xml"> |
| <SPAN class="code-tag"><build></SPAN> |
| <SPAN class="code-tag"><plugins></SPAN> |
| <SPAN class="code-tag"><plugin></SPAN> |
| <SPAN class="code-tag"><groupId></SPAN>org.apache.cayenne.plugins<SPAN class="code-tag"></groupId></SPAN> |
| <SPAN class="code-tag"><artifactId></SPAN>maven-cayenne-plugin<SPAN class="code-tag"></artifactId></SPAN> |
| <SPAN class="code-tag"><executions></SPAN> |
| <SPAN class="code-tag"><execution></SPAN> |
| <SPAN class="code-tag"><id></SPAN>cdbimport<SPAN class="code-tag"></id></SPAN> |
| <SPAN class="code-tag"><configuration></SPAN> |
| <SPAN class="code-tag"><map></SPAN>${project.build.sourceDirectory}/../resources/datamap.map.xml<SPAN class="code-tag"></map></SPAN> |
| <SPAN class="code-tag"><adapter></SPAN>org.apache.cayenne.dba.hsqldb.HSQLDBAdapter<SPAN class="code-tag"></adapter></SPAN> |
| <SPAN class="code-tag"><driver></SPAN>org.hsqldb.jdbcDriver<SPAN class="code-tag"></driver></SPAN> |
| <SPAN class="code-tag"><url></SPAN>jdbc:hsqldb:hsql://localhost/bookmarker<SPAN class="code-tag"></url></SPAN> |
| <SPAN class="code-tag"><username></SPAN>sa<SPAN class="code-tag"></username></SPAN> |
| <SPAN class="code-tag"></configuration></SPAN> |
| <SPAN class="code-tag"><goals></SPAN> |
| <SPAN class="code-tag"><goal></SPAN>cdbimport<SPAN class="code-tag"></goal></SPAN> |
| <SPAN class="code-tag"></goals></SPAN> |
| <SPAN class="code-tag"></execution></SPAN> |
| <SPAN class="code-tag"></executions></SPAN> |
| <SPAN class="code-tag"></plugin></SPAN> |
| <SPAN class="code-tag"></plugins></SPAN> |
| <SPAN class="code-tag"></build></SPAN> |
| </PRE> |
| </DIV></DIV> |