Ho bisogno di un modo per specificare dinamicamente l'unità di persistenza in un EJB.Nome unità di persistenza dinamica JPA
esempio semplificato:
Ho un'applicazione che utilizza più database come archivi di dati. Ciascuno degli archivi dati è strutturalmente uguale. A seconda del client che si connette all'applicazione ho bisogno di accedere ai dati da un archivio dati specifico.
Pertanto, vorrei utilizzare lo stesso EJB in modo che la logica aziendale non sia duplicata, , ma è sufficiente selezionare l'unità di persistenza corretta in base al client.
Fino a questo punto ho solo iniettato direttamente il gestore di entità con il nome dell'unità di persistenza codificato. Esiste un modo per iniettare dinamicamente il gestore di entità con l'unità di persistenza richiesta collegata all'EJB? Inoltre, le unità di persistenza possono essere aggiunte dinamicamente durante il runtime? Attualmente devo specificare l'unità di persistenza nel file persistence.xml. Idealmente mi piacerebbe creare pool sul server jdbc/db1, jdbc/db2 etc come richiesto mentre il sistema è in esecuzione. Quindi aggiungili al database del client centrale e collegalo a un client, in modo che quando il client si connette, controllerà il nome del pool e lo userà quando chiamerà l'EJB per ottenere l'unità di persistenza.
Sono ancora molto nuovo nello sviluppo di Java EE. Qualsiasi aiuto sarebbe molto apprezzato.
Questo è quasi ciò di cui ho bisogno, ma devo ancora definire in anticipo ciascuna unità di persistenza in SharedEntityManagerFactory. Mi sarebbe piaciuto essere in grado di aggiungerli dinamicamente in modo che non siano richieste modifiche al codice e nessuna ridistribuzione richiesta. Posso semplicemente salvare i dettagli dell'unità di persistenza nel database principale e collegarlo al client quando richiesto. Ma questo è già molto meglio che implementare ogni data store come servizio web separato. Molto meno spese generali. Il servizio web ha il vantaggio di essere in grado di memorizzare l'URL in db e di utilizzarlo in modo dinamico. Dovrò salire le opzioni. – likenoother