实体经理最佳实践

时间:2015-06-03 13:42:09

标签: 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 getEntity(){
        final EntityManager em = emf.createEntityManager();
    }

    @PersistenceUnit
    public void setEntityManagerFactory(final EntityManagerFactory emf) {
        this.emf = emf;
    }

}

案例2.)定义全球实体经理并在所有服务中共享。

注意:每项服务仅反映一个实体定义。

1 个答案:

答案 0 :(得分:0)

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

@PersistenceContext(unitName = "persistenceUnit")
private EntityManager entityManager;
  • 您不需要设置EntityManagerFactory,因为您需要一个受事务限制的EntityManager
  • 您不需要在全局组件中保存EntityManager,因为那将是另一个间接层,您无论如何都可以简单地模拟EntityManager