Zum Inhalt springen
Anjunar/ DOCS

Schema-Integration

Generierte Übersetzungstabellen vorbereiten und stabile IDs mit Hibernate DDL Manager 1.2.0 verbinden.

Identität

Generierten Spalten stabile IDs geben

Hibernate DDL Manager 1.2.0 kann die klassenlosen Übersetzungszeilen verwalten. Ergänze stabile @SchemaId-Werte an der konkreten lokalisierten Entity und jedem übersetzten Member.

Stabile Übersetzungsidentitäten

Der Runtime-ID-Provider leitet interne Tabellen- und Schlüssel-IDs von der Hauptentity ab. Eine übersetzte Wertspalte behält die ID ihres Members.

scala
import com.anjunar.hibernateddl.hibernate.annotation.SchemaId @Entity @Table(name = "page") @SchemaId("7f3a9c21") @Localized(defaultLocale = "en") class Page: @Id @SchemaId("0a1b2c3d") var id: UUID = uninitialized @Translation @SchemaId("f34e45b6") var title: String = uninitialized
Migration

Den Schema-Verwalter wählen

Verwaltet der DDL-Manager das Schema, deaktiviere die Hibernate-Erstellung und migriere nach dem Metadatenaufbau vor der SessionFactory. Das Runtime-Artefakt bringt schema-integration 1.2.0 transitiv mit.

Die vollständigen Metadaten migrieren

Setze hibernate.hbm2ddl.auto in der Runtime-Registry auf none. Verwende die vollständigen Anwendungsmetadaten und eine konfigurierte Migration-DataSource.

scala
import com.anjunar.hibernateddl.integration.HibernateSchemaMigration val metadata = new MetadataSources(registry) .addAnnotatedClass(classOf[Page]) .buildMetadata() HibernateSchemaMigration.migrate(metadata, migrationDataSource) val factory = metadata.buildSessionFactory()
Bestehende Datenbanken

Eine Übernahme erfordert, dass das vollständige Schema exakt dem Ziel entspricht. Ältere generierte varchar-Spalten benötigen zuerst die explizite Textanpassung. Alte Übersetzungszeilen sind getrennt und werden nicht automatisch kopiert.