JPA ohne persistence.xml geht das?

Status
Nicht offen für weitere Antworten.

Peter@Pan

Aktives Mitglied
Hi @ll,

kann man eigentlich JPA auch ohne eine persistence.xml benutzen?
Ich finde die persistence.xml nämlich echt problematisch - das ganze ist einfach zu statisch.
Ich habe meinen Rechner zuhause auf dem ich entwickle - nun will ich das ganze aber auf einen Server packen, der natürlich ganz andere DB-Verbindungsparameter hat.
Ich müsste nun beim Bauen der Jar darauf achten, dass die richtige persistence.xml eingebunden wird und nicht die ich fürs entwicklen benutze.

Gruß,
Andreas
 

Siassei

Bekanntes Mitglied
Hallo PeterPan,

ich verstehe dein Argumente nicht ???:L Bist du dir sicher, dass du dich in die Thematik bereits eingearbeitet hast?
 
G

Guest

Gast
Da gibt es mehrere Möglichkeiten damit umzugehen.

1) JNDI-Namen der Datenquelle verwenden (ConnectionPool etc. auf dem Server einrichten), statt direkt den Treibär der DB zu verwenden.
Code:
<jta-data-source>jdbc/deinedb</jta-data-source>
2) Mehrere PUs innerhalb von persistence.xml oder eine zentrale Stelle, wo diese initialisiert wird (z.B. abstrakte Facade etc.)
Code:
public abstract class AbstractFacade {
  @PersistenceContext(unitName = "H2PU") // Deine Persistence Unit
  private EntityManager em;
   
  ...
}
3) Die Properties aus persistence.xml ersetzen indem man sie bei der Initialisierung von EntityManagerFactory bestimmt.
z.B. bei Hibernate
Code:
Map<String, String> map = new HashMap<String, String>();
map.put("hibernate.connection.url", "jdbc:h2:tcp://localhost/h2db");
emf = Persistence.createEntityManagerFactory( "H2PU", map );
4) Mit Ant deployen und dabei die persistence.xml ersetzen
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen


Oben