in fondo, quello che voglio fare è assegnare l'attributo 'unitName' di @PersistenceContext con un valore che mi metterò dalla sessione in fase di esecuzione.dinamica attributo @PersistenceContext unitName per il contenitore a base di EntityManager
in dettaglio;
la mia applicazione sarà un'applicazione SaaS e avrò DB separati per ogni inquilino diverso. sto usando Glassfishv3 e gestisco le entità basate su container quindi non ottengo alcuna istanza da EntityManagerFactory esplicitamente. Tutto quello che sto facendo per creare un gestore di entità è;
@PersistenceContext(unitName = "DBNAME")
private EntityManager entityManager;
necessario passare attributo unitName secondo l'utente corrente. non dovrebbe essere hard-coded.
Ho aggiornato EclipseLink 2.3, ma tutti gli esempi sono la creazione di un'istanza da EMF che è possibile passare Carta come
Map memberProps = new HashMap();
memberProps.put("memberPu1", props1);
memberProps.put("memberPu2", props2);
Map props = new HashMap();
props.put("eclipselink.jdbc.exclusive-connection.mode", "Always");
props.put("eclipselink.composite-unit.properties", memberProps);
EntityManager em = emf.createEntityManager(props);
improbabile nella mia app, contenitore fa quel lavoro quindi non sono essere in grado di fare questo
EntityManager em = emf.createEntityManager(props);
Anche se ho tutte le unità di persistenza e le classi nella mia persistence.xml utilizzando definizioni JNDI, non sto potendo t o dire application server che DB (unità di persistenza) dovrebbe utilizzare al momento
qualsiasi aiuto sarebbe apprezzato
Questa domanda mi aiuta a trovare una soluzione per un caso simile. I thik può essere utilizzato: http://stackoverflow.com/questions/5104185/how-to-inject-persistence-context-to-different-data-source-programmatically – Monnie