JPA benutzerdefinierter Pfad zur Datenbank

Dieses Thema JPA - benutzerdefinierter Pfad zur Datenbank im Forum "Data Tier" wurde erstellt von JMarkus, 21. Nov. 2015.

Thema: benutzerdefinierter Pfad zur Datenbank Hallo, ich habe eine Anwendung die mittels JPA (EclipseLink) auf eine embedded JavaDB zugreifen soll. Nun möchte...

  1. Hallo,
    ich habe eine Anwendung die mittels JPA (EclipseLink) auf eine embedded JavaDB zugreifen soll. Nun möchte ich, dass die Datenbank im Programmverzeichnis bzw. an einer vom Benutzer auszuwählenden Stelle (FileDialog) angelegt wird. Wie stellt man das am besten an? Der Pfad zur Datenbank wird bisher in der persistence.xml fest verdrahtet.

    Vielen Dank für einen Denkanstoß!
     
  2. Vielleicht helfen dir diese Java-Grundlagen weiter --> *Klick*
  3. Wenn ich mich richtig erinnere, dann kann man beim erstellen des EntityManagers eine Property Map mitgeben und mit ihr alle Parameter aus persistence.xml überschreiben.
     
  4. Du hast Recht, vielen Dank für den Tipp.
    Kannst du mir auch sagen, wie ich die embedded JavaDB bei Programmende sauber "herunterfahren" kann?
    Das Hochfahren und verbinden erledigt ja JPA für mich. Mit dem close() des EntityManager und der EntityManagerFactory wird die DB nicht heruntergefahren (zu sehen an der verbleibenden db.lck). Ich kann die DB zwar per reinem JDBC herunterfahren
    Code (Java):
    DriverManager.getConnection("jdbc:derby:;shutdown=true");
    aber muss dafür nicht auch die JPA etwas bieten?
     
  5. kleine Ergänzung, falls es mal jemand liest...
    Die PropertyMap muss beim Erstellen der EntityManagerFactory übergeben werden, nicht beim Erstellen des EntityManagers.
    Eine weitere smarte Variante wäre es, einfach vorher das Derby-Home-Verzeichnis zu setzen.
    Code (Java):
    System.setProperty("derby.system.home", "/path/to/your/db");
     
  6. KOSTENLOSES Java-Grundlagen Training im Wert von 39 € Sichere dir hier den kostenlosen Zugriff auf umfangreiches Java-Know How und starte richtig durch!