![]() |
![]() |
Back to the Speedo documentation
Speedo through Jorm is able to create automaticaly the data
structure on the persistent support. This feature is activated with
regards to the property
org.objectweb.speedo.mappingStructure of the speedo.properties
configuration file.
However in application servers with XA connector some persistent
supports are able to create data structure (SQL relations for example)
inside an XA transaction. Then we advice you to create data structures
before to launch your application. To do this Speedo provides a simple
tool class named 'org.objectweb.speedo.tools.DataStructureCreation'. An
ant target 'createDataStruct' is also provided inside the build.xml of
the speedo distribution and inside the bank example. This target
launches the tools class with regards to the following usage:
DataStructureCreation (<class name to initialize> | <.jdo file name>)*
[-Djavax.jdo.option.DriverClassName=<driver class name>]
[-Djavax.jdo.option.ConnectionURL=<database url>]
[-Djavax.jdo.option.ConnectionUserName=<user name>]
[-Djavax.jdo.option.ConnectionPassword=<user password>]
Speedo is able to generate the script of the database creation,
even
in disconnected mode (regarding the database). The provided ant task
generates the sql
script of the database creation into the file of your choice. The ant
task is : org.objectweb.speedo.ant.AntSpeedoScriptGenerator.
Attribute | Description | Required |
destFile |
Is the name of the file in which the script is written. | Yes |
mapperName |
Is the name of the mapper for which you want
to
generate the script. It cannot be rdb.automatic. |
Yes |
src | Is the location of the source to process. | Yes |
classpathref | Is the classpath containing Speedo, the user classes, and the configuration files (etc directory). | Yes |
generateDrop | Indicates if the drop statements must be
generated or not. Default value is true. |
No |
generateDelete |
Indicates if the delete statements must be generated or not. Default value is true. | No |
generateCreate |
Indicates if the create statements must be generated or not. Default value is true. | No |
The following example comes from the invoice example:
<property name="build" value="${basedir}/build"/>As no "includes" was defined in the generate task, by default all **Mapping.class files present in the src directory will be processed.
<property name="dist" value="${basedir}/../.."/>
<property name="etc" value="${dist}/etc"/>
...
<path id="classpath">
<pathelement location="${etc}"/>
<pathelement location="${build}"/>
<fileset dir="${dist}">
<include name="speedo.jar"/>
<include name="lib/log/log4j.jar"/>
<include name="lib/jdbc/*.jar"/>
</fileset>
</path>
...
<target name="generate.script" depends="compile">
<taskdef name="generate" classname="org.objectweb.speedo.ant.AntSpeedoScriptGenerator">
<classpath refid="classpath"/>
</taskdef>
<generate destFile="dbCreation.sql" mapperName="rdb.postgres"
src="${build}" classpathref="classpath"/>
</target>