CDI& JPA:存储库类的最佳范围

时间:2013-03-23 18:23:52

标签: java-ee-6 cdi scopes

我想知道CDI中存储库类的最有效(就所需资源而言)的范围。想象一下以下场景:

@RequestScoped
//OR @ApplicationScoped OR @SessionScoped OR @ConversationScoped?
public class SomeRepository{
  @Inject 
  private EntityManager em;

  public SomeClass getSomeClassById(int id){
    return em.createNamedQuery("getSomeClassById",SomeClass.class).
             setParameter("id",id).getSingleResult();
   }
}

该示例中的EntityManager使用@RequestScoped范围生成。

1 个答案:

答案 0 :(得分:1)

我认为有趣的问题。出乎意料的是,我想不出任何使这些课特别的东西。所以我会将它们@ApplicationScoped作为一个新实例,其功能与我刚丢弃的实例完全相同。不确定它会对堆有任何明显的影响,可能不是,但也许它们必须重新创建很多?

我认为可以选择概念上更合适的方式。