你需要一个像Spring或Google Guice这样的依赖注入框架来将对象注入到你的类中,否则它可能不会自动为你注入。
基本上这是JPA提供的注释,它可以与hibernate或任何其他ORM框架一起使用,但你需要一个DI框架来注入对象。
关于实体管理器的单个实例,如果您选择Spring,我认为您不需要这样做,因为它通过将您的实体管理器与jpa事务绑定来管理实例和事务。
看到这篇文章: JPA架构 它很好地解释了。
通常,每个事务需要一个实体管理器。并且此实体管理器不得同时用于两个事务。
确认:我的意思是,不要将单个实体管理器用于不同的工作单元。在一个工作单元中的典型一个事务,如果您有一个工作单元的不同事务,则可以使用相同的实体管理器
如果您使用Spring,那么如果您使用Spring,Spring会为您执行此操作 @PersistenceContext 注入以注入EntityManager。默认情况下,Spring将注入的EntityManager(通过代理)“绑定”到当前事务。 (并且事务与线程“绑定”。)
@PersistenceContext
@看到 Spring参考13.5.2基于普通JPA实现DAO - 代码示例后它包含一个有趣的paragagraph。