Title: maven2-cdbimport
cdbimport 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 generate-sources phase. This allows you to generate your DataMap prior to building your project, which may be necessary if you are also using the cgen task.
Attribute | Description | Required |
---|---|---|
map | DataMap XML file to use as a schema descriptor. | Yes |
overwriteExisting | 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 true. | No |
schemaName | Database schema to use for importing. | No |
tablePattern | Pattern to match tables against for import. Default is to match all tables. | No |
importProcedures | Indicates whether stored procedures should be imported. Default is false. | No |
procedurePattern | Pattern to match stored procedures against for import. Default is to match all stored procedures. This value is only meaningful if importProcedures is true. | No |
meaningfulPk | Indicates whether primary keys should be mapped as attributes of the object entity. Default is false. | No |
namingStrategy | The naming strategy used for mapping database names to object entity names. Default is org.apache.cayenne.map.naming.SmartNamingStrategy. | No |
adapter | 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. | No (but strongly recommended) |
driver | A class of JDBC driver to use for the target database. | Yes |
url | JDBC connection URL of a target database. | Yes |
username | Database user name. | No |
password | Database user password. | No |
Load the Maven 2 plugin and configure the cdbimport mojo:
<build> <plugins> <plugin> <groupId>org.apache.cayenne.plugins</groupId> <artifactId>maven-cayenne-plugin</artifactId> <executions> <execution> <id>cdbimport</id> <configuration> <!-- Configuration items go in here. See table, above. --> </configuration> <goals> <goal>cdbimport</goal> </goals> </execution> </executions> </plugin> </plugins> </build>
Here is an example of using cdbimport to create DB schema objects on a local HSQLDB database named "bookmarker" from a DataMap located in "main/resources/datamap.map.xml":
<build> <plugins> <plugin> <groupId>org.apache.cayenne.plugins</groupId> <artifactId>maven-cayenne-plugin</artifactId> <executions> <execution> <id>cdbimport</id> <configuration> <map>${project.build.sourceDirectory}/../resources/datamap.map.xml</map> <adapter>org.apache.cayenne.dba.hsqldb.HSQLDBAdapter</adapter> <driver>org.hsqldb.jdbcDriver</driver> <url>jdbc:hsqldb:hsql://localhost/bookmarker</url> <username>sa</username> </configuration> <goals> <goal>cdbimport</goal> </goals> </execution> </executions> </plugin> </plugins> </build>