我们正在使用 Spring-Hibernate 设计一个应用程序,其中 6 个线程同时运行。每个线程执行不同的操作并在公共表中插入/更新一些记录(所有线程都在公共表上工作)。
虽然我们知道我们只能有一个 的实例EntityManagerFactory,但我们不确定EntityManager应该有多少个实例?我们应该创建六个实体管理器(每个线程一个)吗?我们应该如何创建 DAO?我们应该EntityManager像下面这样创建一个并为所有线程使用相同的 dao 类吗?我知道 EM 规范说它不是线程安全的,但是我在某处读到过在 spring 的情况下注入的 EM 是线程安全的(虽然我不相信这个解释)。
@Trasactional
public class myAppDao {
@PersistenceContext
private EntityManager entityManager;
..
}
Run Code Online (Sandbox Code Playgroud)
还是我们应该做些不同的事情?