Es gibt mehrere Möglichkeiten, es zu tun, meist durch Eigenschaften in persistence.xml
. Ein Standardweg wäre die Verwendung von javax.persistence.schema-generation.scripts.create-script-source
, die möglicherweise bei jedem Start der Webanwendung ausgeführt wird, was höchstwahrscheinlich zu Ausnahmen beim Start und möglicherweise zur Zerstörung Ihrer Daten führt.
In Hibernate können Sie Ihre Tabellen gemäß Ihren Entitäten aktualisieren, indem Sie hibernate.hbm2ddl.auto
bis update
verwenden.
http://docs.jboss.org/hibernate/orm/5.2/userguide/html_single/Hibernate_User_Guide.html#configurations-hbmddl
In Eclipse gibt es die eclipselink.ddl-generation
Eigenschaft. Die create-or-extend-tables
Einstellungen scheint angemessen.
http://www.eclipse.org/eclipselink/documentation/2.4/jpa/extensions/p_ddl_generation.htm
jedoch allgemein gesprochen, JPA mit Ihrem Schema zu halten ist weniger zuverlässig als auch manuell mit einem vorher geschriebenen Skript zum Zeitpunkt der Aktualisierung des Produktionsservers Webapp zu aktualisieren.
Ich denke, die einfachste Lösung könnte sein, einen Weg zu finden, den Benutzer das Datenbankschema ändern zu müssen. Können Sie uns auf die Geschäftslogik hinweisen? –
Da der Benutzer (Client) nicht in der Lage ist, direkt mit dem Datenbankschema zu kommunizieren, möchte ich diese Möglichkeit implementieren, um die Datenbank auf Clientseite zu aktualisieren ... – helloworld1234
Das beantwortet meine Frage nicht wirklich. _Warum_ sollte der Client jemals das Datenbankschema ändern dürfen? Wenn zum Beispiel das Hinzufügen einer neuen Spalte zulässig ist, wie schützt man sich vor böswilligen Angriffen? Sie müssen sich jetzt Sorgen machen, dass unberechtigte Benutzer hereinkommen und die Tabelle explodieren, indem Sie Tausende von Spalten erstellen. –