Van*_*ran 7 java orm multithreading jpa
我正在开发一个需要做一些数据库操作的应用程序.
我为EntityManagerFactory创建了一个静态变量,并在应用程序调用的方法中对其进行了初始化
if (emf == null){
emf = Persistence.createEntityManagerFactory("example");
}
try {
em = emf.createEntityManager();
} catch (Exception ex) {
logger.error(ex.getMessage());
}
Run Code Online (Sandbox Code Playgroud)
这个线程安全吗?如果我在同步块中创建EntityManagerFactory,则等待线程数会增加并使应用程序崩溃.
我查看了文档,看看Persistence.createEntityManagerFactory是否是线程安全的,没有任何成功.
请指出正确的资源.
Pas*_*ent 11
"解决"这个问题的一种简单方法是使用辅助类(a la HibernateUtil)并EntityManagerFactory在静态初始化块中初始化.像这样的东西:
public class JpaUtil {
private static final EntityManagerFactory emf;
static {
try {
factory = Persistence.createEntityManagerFactory("MyPu");
} catch (Throwable ex) {
logger.error("Initial SessionFactory creation failed", ex);
throw new ExceptionInInitializerError(ex);
}
}
...
}
Run Code Online (Sandbox Code Playgroud)
而"问题"已经消失.
| 归档时间: |
|
| 查看次数: |
12480 次 |
| 最近记录: |