HibernateJpaVendorAdapters generateDdl ändert keine Tabellen

7

Ich entwickle eine Website mit Spring + JPA + Hibernate. In der Persistenzkonfiguration (JPA + Hibernate) setze ich das generateDdl-Attribut des HibernateJpaVendorAdapter auf true, und tatsächlich erstellen neue Entitäten die neue Tabelle in der DB korrekt.

Sobald die Tabelle erstellt wurde, erwarte ich, dass HibergenateJpaVendorAdapter die Tabelle ändert und die Spalte ebenfalls hinzufügt, wenn ich der Entität ein Attribut hinzufüge. Dies geschieht nicht und es ist merkwürdig, weil in der Java-AbstractTextDataMap-Methode die folgenden Anweisungen stehen: "Legen Sie fest, ob DDL generiert werden soll, nachdem die EntityManagerFactory initialisiert wurde, indem Sie / update alle relevanten Tabellen erstellen."

JPA + Hibernate-Konfiguration:

%Vor%

persistence.xml:

%Vor%

Mache ich etwas falsch?

    
satoshi 23.01.2012, 17:06
quelle

3 Antworten

16

Sie können eine detailliertere Kontrolle über die DDL-Generierung erhalten, indem Sie eine geeignete Hibernate-spezifische Eigenschaft direkt festlegen:

%Vor%

Alternativ können Sie create-drop anstelle von update verwenden, da update in einigen Fällen Probleme verursachen kann. Beachten Sie jedoch, dass die automatische DDL-Aktualisierung nicht für den produktiven Einsatz gedacht ist.

    
axtavt 23.01.2012, 17:16
quelle
6

Alternativ können Sie mit jpaPropertyMap auch die gleichen Eigenschaften ausdrücken:

%Vor%     
Robert Hunt 21.11.2012 11:32
quelle
0

Vielleicht zu spät, aber heute hatte ich das gleiche Problem, als ich einige Tests für eine Legacy-App schrieb.

Das Problem tritt nicht nur auf, wenn Sie generateDdl -Eigenschaft verwenden, sondern auch HSQL wird verwendet.

Um es zu lösen, änderte ich die Datenbank von HSQL zu H2 und die Datenquelle von org.springframework.jdbc.datasource.DriverManagerDataSource zu org.apache.commons.dbcp.BasicDataSource .

Die Datei spring-context.xml sieht folgendermaßen aus:

%Vor%

Die Datei persistence.xml sieht folgendermaßen aus:

%Vor%

Ich hoffe, es hilft.

    
Nel Gonzalez 13.10.2016 19:12
quelle

Tags und Links