Ich habe ein Servlet, und wenn ich diese Methode mit H2 in der PU angegeben aufrufen, erstellt es die gesamte Datenbankstruktur jedes Mal neu, wenn ich es rufe. Kann ich diese Methode nur einmal aufrufen, und wenn ich sie> 1 Mal anrufen kann, wie mache ich das?Aufruf Persistence.createEntityManagerFactory> 1 mal
entityManagerFactory = Persistence
.createEntityManagerFactory("MYPU");
XML für die Persistenz
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence
http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
<persistence-unit name="MyJPAJAXRS" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
<non-jta-data-source>jdbc/myds</non-jta-data-source>
<properties>
<property name="javax.persistence.schema-generation.database.action"
value="drop-and-create"/>
<property name="javax.persistence.sql-load-script-source" value="META-INF/seed.sql"/>
</properties>
</persistence-unit>
</persistence>
Danke, wenn man qq - warum die Eigenschaften? Ich habe den Verbindungsaufbau als eine JNDI-Ressource, die ich von persistence.xml referenziere. Ich kann das überspringen, ja? – mikeb
Das war nur ein Beispiel. Wenn Sie die Requisiten bereits in Ihrer persistence.xml festlegen, müssen Sie die Eigenschaften hier nicht festlegen. Verwenden Sie einfach die andere überladene Methode: createEntityManagerFactory (String persistenceUnitName) –
Bitte akzeptieren Sie auch, wenn ich Ihre ursprüngliche Frage beantwortet habe. Vielen Dank. –