Guest User

Untitled

a guest
Jan 19th, 2018
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.34 KB | None | 0 0
  1. package br.com.germantech.ecf.infraestrutura.persistencia.entityManager;
  2.  
  3. import java.util.HashMap;
  4. import java.util.Map;
  5.  
  6. import javax.persistence.EntityManager;
  7. import javax.persistence.EntityManagerFactory;
  8.  
  9. import org.eclipse.persistence.config.PersistenceUnitProperties;
  10. import org.eclipse.persistence.config.TargetDatabase;
  11. import org.eclipse.persistence.jpa.osgi.PersistenceProvider;
  12. import org.postgresql.Driver;
  13.  
  14. import br.com.germantech.ecf.Bootstrap;
  15.  
  16. public abstract class ECFEntityManager {
  17.  
  18. private static EntityManagerFactory emf = null;
  19. private static Map<String, Object> properties = new HashMap<String, Object>();
  20. private static final ThreadLocal<EntityManager> ENTITY_MANAGER_CACHE = new ThreadLocal<EntityManager>();
  21.  
  22. private static void init() {
  23. properties.put(PersistenceUnitProperties.TARGET_DATABASE,
  24. TargetDatabase.PostgreSQL);
  25. properties.put(PersistenceUnitProperties.JDBC_DRIVER,
  26. Driver.class.getCanonicalName());
  27. properties.put(PersistenceUnitProperties.JDBC_URL,
  28. "jdbc:postgresql://127.0.0.1:5432/ecf");
  29. properties.put(PersistenceUnitProperties.JDBC_USER, "postgres");
  30. properties.put(PersistenceUnitProperties.JDBC_PASSWORD, "*****");
  31. properties.put(PersistenceUnitProperties.CONNECTION_POOL_MIN, "5");
  32. properties.put(PersistenceUnitProperties.CONNECTION_POOL_MAX, "10");
  33. properties.put(PersistenceUnitProperties.CACHE_SHARED_DEFAULT, "true");
  34. properties.put(PersistenceUnitProperties.CACHE_STATEMENTS, "true");
  35. properties.put(PersistenceUnitProperties.BATCH_WRITING, "JDBC");
  36. properties.put(PersistenceUnitProperties.CLASSLOADER,
  37. Bootstrap.class.getClassLoader());
  38.  
  39. // Cria tabelas novas (mas não atualiza)
  40. // properties.put(PersistenceUnitProperties.DDL_GENERATION,"create-tables");
  41.  
  42. properties.put("eclipselink.logging.level", "FINE");
  43. properties.put("eclipselink.logging.timestamp", "true");
  44. properties.put("eclipselink.logging.session", "false");
  45. properties.put("eclipselink.logging.thread", "true");
  46. properties.put("eclipselink.logging.exceptions", "true");
  47.  
  48. emf = new PersistenceProvider().createEntityManagerFactory("ecf",
  49. properties);
  50. }
  51.  
  52. public static EntityManager createEntityManager() {
  53. EntityManager entityManager = ENTITY_MANAGER_CACHE.get();
  54. if (entityManager == null) {
  55. init();
  56. ENTITY_MANAGER_CACHE.set(entityManager = emf.createEntityManager());
  57. }
  58. return entityManager;
  59. }
  60.  
  61. }
Add Comment
Please, Sign In to add comment