Befehl "wsmapping"
Mit dem Tool "wsmapping" können Top-down-Zuordnungen des Entitätsobjektmodells zum relationalen Datenbankmodell vorgenommen werden. Mit dem Tool "wsmapping" können Sie Datenbanktabellen erstellen.
Syntax
Der Befehl hat die folgende Syntax:
![[AIX]](../images/aixlogo.gif)
![[HP-UX]](../images/hpux.gif)
![[Linux]](../images/linux.gif)
![[Solaris]](../images/solaris.gif)
![[z/OS]](../images/ngzos.gif)
wsmapping.sh [Optionen][Argumente]
![[IBM i]](../images/iseries.gif)
wsmapping [Optionen][Argumente]
![[Windows]](../images/windows.gif)
wsmapping.bat [Optionen][Argumente]
Parameter
- -schemaAction/-sa <add | refresh | drop
| build | reflect | retain | createDB | import | export | none>:
Die Aktion, die für das Schema implementiert werden soll.
Diese Optionen entsprechen den Aktionen des Schematools. add ist die Standardaktion, die ausgeführt wird, wenn keine Aktion angegeben ist. Es können mehrere Aktionen, voneinander getrennt durch Kommata, in einer Liste angegeben werden.
Anmerkung: Das Tool wsmapping akzeptiert das Flag "-action/-a, um die Aktion, die für einzelne Klassen ausgeführt werden soll, anzugeben. Wenn Sie wsmapping nicht für alle persistenten Typen zugleich ausführen oder eine Zuordnung löschen möchten, müssen Sie die Standardaktion add oder die Aktion build ausführen. Andernfalls könnten Sie versehentlich Schemakomponenten löschen, die von Klassen verwendet werden, für die Sie das Tool gegenwärtig nicht ausführen. - -schemaFile/-sf <true/t | false/f>:
Mit dieser Option können Sie das geplante Schema in ein XML-Dokument schreiben, ohne die Datenbank ändern zu müssen.
Das XML-Dokument kann dann mit dem Schematool geändert, bearbeitet und in der Datenbank festgeschrieben werden.
- -sqlFile/-sql <stdout | Ausgabedatei>:
Mit dieser Option können Sie die geplanten Schemaänderungen in ein SQL-Script schreiben, ohne die Datenbank ändern zu müssen.
Kombinieren Sie diesen Parameter mit der schemaAction build, um ein Script zu generieren, dass das Schema für die aktuellen Zuordnungen erneut erstellt, selbst wenn das Schema vorhanden ist.
- -dropTables/-dt <true/t | false/f>:
Wenn diese Option auf "true" gesetzt ist, löscht das Schema nicht verwendete Tabellen während der Aktionen retain
und refresh.
Der Standardwert ist true.
- -dropSequences/-dsq <true/t | false/f>:
Ist diese Option auf true gesetzt, löscht das Schema nicht verwendete Sequenzen während der Aktionen retain und refresh.
Der Standardwert ist true.
- -openjpatables/-ot <true/t | false/f>:
Beim Ausgeben des Schemas bestimmt dieser Parameter, ob Tabellen und Sequenzen, deren Name mit OPENJPA_ beginnt, ausgegeben werden sollen.
Diese Tabellen und Sequenzen werden von bestimmten OpenJPA-Komponenten, z. B. der Tabellenschemafactory, genutzt. Wenn Sie andere Aktionen ausführen, bestimmt der Parameter openjpaTables, ob diese Tabellen gelöscht werden können. Die Standardeinstellung ist false.
- -ignoreErrors/-i <true/t | false/f>:
Ist dieser Parameter auf false gesetzt, wird eine Ausnahmebedingung ausgelöst,
wenn das Tool Datenbankfehler ermittelt.
Die Standardeinstellung ist false.
- -schemas/-s <Schemaliste>:
Bezeichnet eine Liste von Schema- und Tabellennamen, auf die OpenJPA bei der Ausführung des Tools "wsschema" zugreift.
Diese Einstellung ist äquivalent zu der Einstellung der Eigenschaft "openjpa.jdbc.Schemas", die eine einmalige Ausführung vorsieht. Dieser Parameter entspricht dem Parameter -schemas/-s im Tool "wsschema". Diese Option wird ignoriert, wenn -readSchema/-rs nicht auf true gesetzt ist.
- -readSchema/-rs <true/t | false/f>:
Setzen Sie diese Option auf true, um das gesamte Schema zu lesen, wenn das Zuordnungstool ausgeführt wird.
Durch das Lesen des vorhandenen Schemas wird sichergestellt, dass OpenJPA keine Zuordnungen mit Namen von Tabellen, Indizes, Primärschlüsseln oder Fremdschlüsseln generiert, die mit vorhandenen Namen in Konflikt stehen.
Anmerkung: Je nach JDBC-Treiber kann die Auswahl der Funktion -readSchema/-rs den Prozess bei großen Schemata verlangsamen. - -primaryKeys/-pk <true/t | false/f>:
Dieses Flag bestimmt, ob die Primärschlüssel in vorhandenen Tabellen bearbeitet werden können.
Der Standardwert ist true.
- -foreignKeys/fk <true/t | false/f>:
Dieses Flag bestimmt, ob Fremdschlüssel in vorhandenen Tabellen bearbeitet werden können.
Der Standardwert ist true. Wenn Sie einen neuen Fremdschlüssel zu einer Klasse hinzufügen möchten, die bereits zugeordnet wurde, müssen Sie dieses Parameter-Flag explizit auf true setzen.
- -indexes/-ix <true/t | false/f>:
Dieses Flag bestimmt, ob Indizes in vorhandenen Tabellen bearbeitet werden können.
Der Standardwert ist true. Wenn Sie einen neuen Index zu einer Klasse hinzufügen möchten, die bereits zugeordnet wurde, müssen Sie dieses Parameter-Flag explizit auf true setzen.
- -sequences/-sq <true/t | false/f>:
Dieses Flag bestimmt, ob Sequenzen bearbeitet werden können.
Der Standardwert ist true.
- -meta/-m <true/t | false/f>: Dieses Flag bestimmt, ob eine Zuordnung auf Metadaten und nicht auf Standardzuordnungen bzw. zusätzlich zu diesen angewendet wird.
- Das Tool wsmapping akzeptiert das Flag -action/-a, um die Aktion, die für jede Klasse ausgeführt werden soll, anzugeben. Es können mehrere Aktionen, voneinander getrennt durch Kommata, in einer Liste angegeben werden. Folgende Aktionen sind möglich:
- buildSchema: Das ist die Standardaktion. Die Aktion buildSchema gleicht das Datenbankschema mit den vorhandenen Zuordnungen ab. Wenn die angegebenen Zuordnungen mit den Klassendefinitionen in Konflikt stehen, schlägt OpenJPA mit einer Ausnahmebedingung fehl, die lediglich informativen Charakter hat.
- validate: Vergewissern Sie sich, dass die Zuordnungen für die vorhandenen Klassen gültig sind und mit dem Schema der Datenbank übereinstimmen. Durch diese Aktion werden keine Zuordnungen von Tabellen geändert. Wenn alle Zuordnungen ungültig sind, wird eine Ausnahmebedingung ausgelöst.
- Der vollständige Name einer persistenten Klasse.
- Der .java-Name für eine persistente Klasse.
- Die .class-Datei einer persistenten Klasse.
Wenn Sie keine Argumente für das Tool "wsmapping" angeben, wird das Tool für die Klassen, die in der Liste der persistenten Klassen aufgeführt sind, ausgeführt.
Verwendung
Bevor Sie das Tool "wsmapping" ausführen, müssen Sie die Datenquelleninformationen einschließlich URL, Benutzer und Kennwort konfigurieren. Sie müssen das Tool "wsenhancer" vor dem Tool "wsmapping" ausführen, um Bytecode in die Entitätsklassen einzufügen. Außerdem müssen die kompilierten Klassendateien für Ihre Entitäten im Klassenpfad enthalten sein. Angenommen, die Entitätsklassendateien sind unter "target/classes" enthalten:
![[AIX]](../images/aixlogo.gif)
![[HP-UX]](../images/hpux.gif)
![[Linux]](../images/linux.gif)
![[AIX HP-UX Solaris]](../images/unix.gif)
![[Solaris]](../images/solaris.gif)
![[z/OS]](../images/ngzos.gif)
export CLASSPATH=${CLASSPATH}:target/classes
wsmapping.sh ...
![[IBM i]](../images/iseries.gif)
export CLASSPATH=${CLASSPATH}:target/classes
wsmapping ...
![[Windows]](../images/windows.gif)
SET CLASSPATH=%CLASSPATH%;target\classes
wsmapping.bat . . .
Führen Sie zum Erstellen von Tabellen den Befehl "wsmapping" im Verzeichnis ${profile_root}/bin aus. Nach Abschluss des Befehls werden die Datenbanktabellen erstellt oder aktualisiert. Nachrichten und Fehler werden gemäß den Protokolleinstellungen in der Administrationskonsole protokolliert.
wsmapping.sh . . . On Windows:
Beispiele
Gehen Sie wie folgt vor, um die für die Datei Magazine.java benötigten Datenbanktabellen zu erstellen:
![[AIX]](../images/aixlogo.gif)
![[HP-UX]](../images/hpux.gif)
![[Linux]](../images/linux.gif)
![[Solaris]](../images/solaris.gif)
![[z/OS]](../images/ngzos.gif)
${profile_root}/bin/wsmapping.sh Magazine.java
![[IBM i]](../images/iseries.gif)
${profile_root}/bin/wsmapping Magazine.java
![[Windows]](../images/windows.gif)
${profile_root}\bin\wsmapping.sh Magazine.java
Gehen Sie wie folgt vor, um die Tabellen für Magazine.java zu löschen:
![[AIX]](../images/aixlogo.gif)
![[HP-UX]](../images/hpux.gif)
![[Linux]](../images/linux.gif)
![[Solaris]](../images/solaris.gif)
![[z/OS]](../images/ngzos.gif)
C:\> %profile_root%/bin/wsmapping.sh -sa dropDB Magazine.java
![[IBM i]](../images/iseries.gif)
C:\> %profile_root%/bin/wsmapping -sa dropDB Magazine.java
![[Windows]](../images/windows.gif)
C:\> %profile_root%\bin\wsmapping.bat -sa dropDB Magazine.java
Gehen Sie wie folgt vor, um die Zuordnungen für alle Klassen im Klassenpfad zu validieren:
![[AIX]](../images/aixlogo.gif)
![[HP-UX]](../images/hpux.gif)
![[Linux]](../images/linux.gif)
![[Solaris]](../images/solaris.gif)
![[z/OS]](../images/ngzos.gif)
C:\> %profile_root%/bin/wsmapping.sh -a validate
![[IBM i]](../images/iseries.gif)
C:\> %profile_root%/bin/wsmapping -a validate
![[Windows]](../images/windows.gif)
C:\> %profile_root%\bin\wsmapping.bat -a validate
Weitere Informationen
Weitere Informationen und Beispiele finden Sie in den Informationen zur Zuordnung in der Veröffentlichung "Apache OpenJPA User Guide".