Zum Inhalt springen
Anjunar/ DOCS

Hibernate I18n

Typisierte Entity-Felder mit relationalen Übersetzungen und einer Inhaltssprache pro Session.

1.0.0Aktuelle Version
JVM / Java 17+Läuft auf
Scala 3.9Sprachversion
MITLizenz

Installation

Binde die Runtime 1.0.0 aus Maven Central ein. Sie bringt das Annotationsmodul und Hibernate DDL Manager 1.2.0 transitiv mit; stelle eine PostgreSQL-DataSource und den JDBC-Treiber bereit.

sbt
libraryDependencies += "com.anjunar" % "hibernate-i18n" % "1.0.0"
xml
<dependency> <groupId>com.anjunar</groupId> <artifactId>hibernate-i18n</artifactId> <version>1.0.0</version> </dependency>

Gewöhnliche Typen, sprachabhängige Speicherung

Die Entity behält einen String-Titel. Ein expliziter Runtime-Bootstrap erzeugt das getrennte Übersetzungsmapping.

scala
import com.anjunar.hibernatei18n.annotation.{Localized, Translation} import com.anjunar.hibernateddl.hibernate.annotation.SchemaId import jakarta.persistence.{Entity, Id, Table} import java.util.UUID import scala.compiletime.uninitialized @Entity @Table(name = "page") @SchemaId("7f3a9c21") @Localized(defaultLocale = "en", fallbackLocale = "en") class Page: @Id @SchemaId("0a1b2c3d") var id: UUID = uninitialized @Translation @SchemaId("f34e45b6") var title: String = uninitialized
01 / Felder

Domänentypen behalten

Strings und konvertierte Werte bleiben gewöhnliche Entity-Properties; ihre gespeicherten Werte gehören zu Sprachzeilen.

02 / Sprache

Eine Session, eine Sprache

Laden und Abfragen teilen eine feste Inhaltssprache und lösen Fallback für jedes übersetzte Feld einzeln auf.

03 / Editor

Exakte Überschreibungen bearbeiten

Ein typisierter Zugriff bearbeitet inaktive Sprachen, während die verwaltete Entity ihre geladene Sprache behält.

Runtime

Version 1.0.0 unterstützt Hibernate 7.4.10.Final und PostgreSQL. Starte mit HibernateI18n.registryBuilder() und installiere jede lokalisierte Entity vor dem Öffnen von Sessions. Die Referenz dokumentiert den unterstützten Mapping- und Lebenszyklusvertrag.

Inhalt

Vom Mapping zum Editor

Beginne mit Entity-Mapping und Bootstrap und lies danach die Leitfäden zu Sessions, Editor und Schema.