Estoy trabajando en una aplicación que necesita realizar algunas operaciones de base de datos.Cómo crear un hilo seguro EntityManagerFactory?
creé una variable estática para EntityManagerFactory y inicializado en el método que es llamada por la aplicación
if (emf == null){
emf = Persistence.createEntityManagerFactory("example");
}
try {
em = emf.createEntityManager();
} catch (Exception ex) {
logger.error(ex.getMessage());
}
este hilo es seguro? si creo EntityManagerFactory en un bloque sincronizado, el número de subidas en espera aumenta y bloquea la aplicación.
Miré los documentos para ver si Persistence.createEntityManagerFactory es seguro para subprocesos sin éxito.
Indiqueme los recursos correctos.
Lo hice antes. Pero, algunas personas sienten que no es una buena práctica inicializarse en los bloques estáticos. ¿Está bien? –
@Vanchinathan Ese es realmente un enfoque típico cuando no estás en un entorno administrado y no veo nada de malo en él. Ahora, si proporciona algunos argumentos en contra, podríamos discutirlos, pero hasta entonces, mantengo esta recomendación. –
El único argumento que siempre obtengo es que tener código en los bloques estáticos dificulta la prueba. Seguimos estrictamente el desarrollo de Test Driven. Entonces necesito algo que también sea más fácil de probar. –