JPA Entities defiieren wir i. d. R. mit Hilfe von Annotationen, d. h. das Mapping von Klassen und Attributen zu Tabellen und Spalten befindet sich im Java-Quelltext in Form von @Entity
, @Table
, @Id
, @Column
etc. Für Altanwendungen (vor der Einführung von Annotationen) und andere Situationen, in denen Annotatione nicht genutzt werden können kann man das Mapping alternativ auch im Descriptor orm.xml
hinterlegen.
orm.xml
hat aber nicht nur diese Legacy-Aufgabe; es können auch Default-Werte für alle Entities hinterlegt werden, z. B. das Schema, in dem die Tabellen per Default liegen:
<?xml version="1.0" encoding="UTF-8"?>
<entity-mappings version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence/orm" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence/orm http://xmlns.jcp.org/xml/ns/persistence/orm_2_1.xsd">
<persistence-unit-metadata>
<persistence-unit-defaults>
<schema>S1060</schema>
</persistence-unit-defaults>
</persistence-unit-metadata>
</entity-mappings>
Analog können angegeben werden:
<catalog>...</catalog>
: Katalog der Tabellen,<delimited-identifiers/>
: Tabellennamen in Quotes setzen,<access>FIELD</access>
: Field Access verwenden (analogPROPERTY
),<cascade-persist/>
:CascadeType.PERSIST
implizit für alle Relationen annehmen.
Zudem ist es möglich, beliebig viele Entity Listener anzugeben:
<entity-listeners>
<entity-listener class="..."></entity-listener>
<entity-listener class="..."></entity-listener>
</entity-listeners>
Neben der standardmäßig genutzten Datei orm.xml
können mit den Elementen <mapping-file>...</mapping-file>
in der persistence.xml
beliebige weitere Mapping Files referenziert werden (als Classpath Ressources).