Java 实体经理最佳实践

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

我想知道哪种方式是定义实体管理器的最佳方式。我用的是弹簧靴

案例1)在spring服务类中创建,如下所示

@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

注入EntityManager是最简单、最有效的方法:

@PersistenceContext(unitName = "persistenceUnit")
private EntityManager entityManager;
  • 您不需要设置
    EntityManager工厂
    ,因为您需要一个事务绑定的
    EntityManager
  • 您不需要在全局组件中保存
    EntityManager
    ,因为这将是另一个间接层,您可以简单地模拟
    EntityManager

1。不,2。不需要。只需添加一个类型为
EntityManager
的字段,用
@PersistenceContext
注释即可。非常感谢@M.Deinum.1。不,2。不需要。只需添加一个类型为
EntityManager
的字段,用
@PersistenceContext
注释即可。非常感谢@M.Deinum.1。不,2。不需要。只需添加一个类型为
EntityManager
的字段,用
@PersistenceContext
注释即可。非常感谢@M.Deinum。