实用程序类:EJB会话还是简单对象?

时间:2016-10-23 21:42:18

标签: java java-ee ejb pojo stateless

我正在开发基于EJB的应用程序,其中我有 JpaUtility 实用程序类。为了实现它,我有两个选择:

  • 创建一个简单的对象JpaUtility,其中我放了getAll方法 static,从类名称(JpaUtility.getAll)
  • 启用访问

/ *简单对象实用程序* /

public class JpaUtility
{
public static List<T> getAll(EntityManager manager, Class<T> clazz) {
        return manager.createQuery("...."); }
}
  • 创建一个包含getAll方法的EJB-Session,然后注入并使用 需要的时候。

/ * EJB实用程序* /

@Stateless
public class JpaUtility
{
@PersistentContext
private EntityManager manager;
public static List<T> findAll(Class<T> clazz) {
        return manager.createQuery("...."); }
}

问题是:哪一个提供最佳性能?简单对象或EJB无状态?换句话说,与简单对象相比,EJB提供了什么?

1 个答案:

答案 0 :(得分:2)

你想要完成的事情看起来像是通用模式DAO&#39;有许多&#34;准备就绪&#34;来自AdamBien的实现:"Generic CRUD Service" 更精细,无需自定义解决方案,并从Apache DeltaSpike接近Spring模板的简单性:DeltaSpike Data module

现在回到原来的问题,EJB或POJO,在您的情况下,当在EE容器中使用实体管理器时,必须是&#34;容器管理&#34;,所以你的&#34;正确&# 34;选项是EJB或CDI,但不是普通的非托管POJO。