Zum Inhalt springen
Anjunar/ DOCS

Runtime-Bootstrap

Metadaten aufbauen und vor der ersten sprachgebundenen Session jede Übersetzungsbrücke installieren.

Einrichtung

Runtime-Metadaten aufbauen

Erzeuge die Registry mit HibernateI18n, damit Mapping-Generator und Metadaten-Finalizer installiert sind. Stelle eine PostgreSQL-DataSource und die annotierte Page aus dem Mapping-Leitfaden bereit.

Registry und Schema-Vorbereitung

Verwende den DDL-Manager als Schema-Verwalter. Migriere die vollständigen Metadaten vor dem Factory-Aufbau und lasse die Hibernate-Schemaerstellung deaktiviert.

scala
import com.anjunar.hibernatei18n.runtime.HibernateI18n import com.anjunar.hibernateddl.integration.HibernateSchemaMigration import org.hibernate.boot.MetadataSources val registry = HibernateI18n.registryBuilder() .applySetting("hibernate.connection.datasource", dataSource) .applySetting("hibernate.cache.use_query_cache", "false") .applySetting("hibernate.hbm2ddl.auto", "none") .build() val metadata = new MetadataSources(registry) .addAnnotatedClass(classOf[Page]) .buildMetadata() HibernateSchemaMigration.migrate(metadata, dataSource) val factory = metadata.buildSessionFactory()
Textspalten-Anpassung

Die Anpassung benötigt eine PostgreSQL-Verbindung mit Auto-Commit. Sie erweitert bestehende generierte varchar-Spalten auf text, erhält Werte und überlässt fehlende Tabellen der Schema-Erstellung.

Brücke

Jede lokalisierte Entity installieren

Installiere jede gemappte @Localized-Entity einmal vor der ersten sprachgebundenen Session. Die Feldliste muss jeden übersetzten Member enthalten und jeder Reader seine benannte Property lesen.

Die Titelbrücke registrieren

Bewahre den zurückgegebenen Zugriff und das Feldobjekt für den Editor auf. Fehlende Entity-Brücken oder falsch verdrahtete Reader werden abgelehnt.

scala
import com.anjunar.hibernatei18n.runtime.{TranslationField, HibernateI18n} val titleField = TranslationField.string[Page]("title", _.title) val translations = HibernateI18n.install( factory, classOf[Page], _.id, Seq(titleField))
scala
val session = HibernateI18n.openSession(factory, "de") try // Use this Session for one content locale. () finally session.close()