@SuppressWarnings("rawtypes")
 public EntityManagerFactory createContainerEntityManagerFactory(
     PersistenceUnitInfo info, Map properties) {
   Ejb3Configuration cfg = new Ejb3Configuration();
   if (info instanceof SmartPersistenceUnitInfo) {
     for (String managedPackage : ((SmartPersistenceUnitInfo) info).getManagedPackages()) {
       cfg.addPackage(managedPackage);
     }
   }
   Ejb3Configuration configured = cfg.configure(info, properties);
   return (configured != null ? configured.buildEntityManagerFactory() : null);
 }
Ejemplo n.º 2
0
 /**
  * Metodo che permette la persistenza di un'oggetto che mappa un'entita' JPA
  *
  * @param streamObj Oggetto da persistere
  * @param tipoDB Nome dialetto da usare per la persistenza
  * @param configOverrides Map contenente le èroprieta' per la connessione al giusto database
  * @return 1 se l'oggetto e' stato persistito con successo, 0 altrimenti.
  * @throws Throwable
  */
 public static int insertQuery(
     StreamToDbDynamicObject streamObj,
     int tipoDB,
     @SuppressWarnings("rawtypes") Map configOverrides)
     throws Throwable {
   int returnedValue = 0;
   Object o = streamObj.getObject();
   logWriter.warn("QuickDBManager.insertQuery :configOverrides " + configOverrides);
   logWriter.warn(
       "QuickDBManager.insertQuery :object to persist "
           + o.getClass().toString()
           + ", in DB type: "
           + tipoDB);
   EntityManager em = null;
   if (streamObj.getEntityManager() == null) {
     Ejb3Configuration cfg = new Ejb3Configuration();
     cfg.configure("" + tipoDB + "_QuickDBRecognizerPU", configOverrides);
     EntityManagerFactory emf = cfg.addAnnotatedClass(o.getClass()).buildEntityManagerFactory();
     em = emf.createEntityManager();
     streamObj.setEntityManager(em);
   } else {
     em = streamObj.getEntityManager();
   }
   em.getTransaction().begin();
   logWriter.warn("Open Transition");
   try {
     em.merge(o);
     logWriter.warn("Ogetto persistito");
     em.getTransaction().commit();
     returnedValue = 1;
   } catch (Throwable e) {
     em.getTransaction().rollback();
     logWriter.error("DB Rollback " + e);
     throw new Throwable(e.getMessage());
   }
   return returnedValue;
 }