Heim >Java >javaLernprogramm >Wie kann ich Entitäten in persistence.xml für JPA definieren?

Wie kann ich Entitäten in persistence.xml für JPA definieren?

DDD
DDDOriginal
2024-11-28 08:02:10442Durchsuche

How can I define entities in persistence.xml for JPA?

Entitäten in persistence.xml

In der Java Persistence API (JPA) informiert die Datei persistence.xml den Persistenzanbieter über die Persistenzeinheiten in der Anwendung und dient als Konfigurationsdatei. Eine seiner Funktionen besteht darin, die Entitäten zu definieren, die von der Persistenzeinheit verwaltet werden sollen.

Automatisches Entity-Scanning

JPQL sucht automatisch nach Entitäten in den Java-Paketen mit den Klassen angegeben in der Elemente von persistence.xml. Dieser Ansatz ist jedoch nicht zwingend erforderlich und es können andere Mechanismen zum Definieren der Entitäten verwendet werden.

Verwendung des jar-file-Elements

Anstatt die Entitäten manuell aufzulisten, Mit dem Element jar-file können Sie eine oder mehrere JAR-Dateien angeben, die die Entitätsklassen enthalten. Der Persistenzanbieter durchsucht diese JAR-Dateien nach Klassen, die mit @Entity annotiert sind.

<persistence>
    <persistence-unit name="eventractor" transaction-type="RESOURCE_LOCAL">
        <jar-file>MyOrderApp.jar</jar-file>
        <properties>
            <property name="hibernate.hbm2ddl.auto" value="validate" />
            <property name="hibernate.show_sql" value="true" />
        </properties>
    </persistence-unit>
</persistence>

Automatische Erkennung im Ruhezustand

Hibernate unterstützt speziell die automatische Erkennung von Entitäten auch in Java SE-Anwendungen. Um dies zu ermöglichen, fügen Sie die Eigenschaft hibernate.archive.autodetection zu persistence.xml hinzu:

<persistence>
    <persistence-unit name="eventractor" transaction-type="RESOURCE_LOCAL">
        <!-- Hibernate auto-detection is spec compliant in Java EE only. -->
        <properties>
            <property name="hibernate.archive.autodetection" value="class, hbm" />
            <property name="hibernate.hbm2ddl.auto" value="validate" />
            <property name="hibernate.show_sql" value="true" />
        </properties>
    </persistence-unit>
</persistence>

Fazit

Während es nicht zwingend erforderlich ist, Entitäten direkt in der Persistenz anzugeben .xml, wodurch eine explizite Kontrolle darüber gewährleistet wird, welche Klassen vom Persistenzanbieter verwaltet werden. Die Verwendung von JAR-Dateielementen oder der automatischen Erkennungsfunktion von Hibernate bietet mehr Flexibilität bei der Verwaltung von Entitäten.

Das obige ist der detaillierte Inhalt vonWie kann ich Entitäten in persistence.xml für JPA definieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn