Java 实体经理最佳实践
我想知道哪种方式是定义实体管理器的最佳方式。我用的是弹簧靴 案例1)在spring服务类中创建,如下所示Java 实体经理最佳实践,java,spring,hibernate,jpa,spring-data,Java,Spring,Hibernate,Jpa,Spring Data,我想知道哪种方式是定义实体管理器的最佳方式。我用的是弹簧靴 案例1)在spring服务类中创建,如下所示 @Service @Transactional public class DemoService { private static final Logger log = LoggerFactory.getLogger(DemoService.class); private EntityManagerFactory emf; public void getEnti
@Service
@Transactional
public class DemoService {
private static final Logger log = LoggerFactory.getLogger(DemoService.class);
private EntityManagerFactory emf;
public void getEntity(){
final EntityManager em = emf.createEntityManager();
}
@PersistenceUnit
public void setEntityManagerFactory(final EntityManagerFactory emf) {
this.emf = emf;
}
}
案例2.)定义一个全局实体管理器,并在所有服务中共享它
注意:每个服务只反映一个实体定义。注入EntityManager是最简单、最有效的方法:
@PersistenceContext(unitName = "persistenceUnit")
private EntityManager entityManager;
- 您不需要设置
,因为您需要一个事务绑定的EntityManager工厂
EntityManager
- 您不需要在全局组件中保存
,因为这将是另一个间接层,您可以简单地模拟EntityManager
EntityManager
@PersistenceContext(unitName = "persistenceUnit")
private EntityManager entityManager;
- 您不需要设置
,因为您需要一个事务绑定的EntityManager工厂
EntityManager
- 您不需要在全局组件中保存
,因为这将是另一个间接层,您可以简单地模拟EntityManager
EntityManager
EntityManager
的字段,用@PersistenceContext
注释即可。非常感谢@M.Deinum.1。不,2。不需要。只需添加一个类型为EntityManager
的字段,用@PersistenceContext
注释即可。非常感谢@M.Deinum.1。不,2。不需要。只需添加一个类型为EntityManager
的字段,用@PersistenceContext
注释即可。非常感谢@M.Deinum。