【问题标题】:How to deal with the FinderException while migrating EJB 2 CMP entity beans to EJB 3 JPA entity?将 EJB 2 CMP 实体 bean 迁移到 EJB 3 JPA 实体时如何处理 FinderException?
【发布时间】:2019-08-30 20:22:57
【问题描述】:

我正在迁移一个EJB2 应用程序,但我不知道如何处理FinderExceptionEJB2 CMP 实体bean 抛出的FinderException,因为在某些业务方法中,在FinderException 的catch 子句中实现了逻辑代码.

    public void myMethod(){

        ...

        try {
               File file = fileHome.findFile(inFile);

            } catch (FinderException e) {
                // Other logic
            } 

    }

现在 File 是一个EJB 3 JPA 实体,不需要在findFile(...) 方法上抛出FinderException

FinderException 是否有任何替换,以便我可以保留 myMethod 的业务逻辑?

【问题讨论】:

    标签: jpa ejb entity cmp


    【解决方案1】:

    我处理这个问题已经有一段时间了。 答案是肯定的,javax.persistence.NoResultException 就是你要找的。​​p>

    在我迁移到 ejb3 的情况下,我在每次出现时都将 FinderException 替换为 NoResultException。只要您在try 块中的代码将通过命名查询调用实体管理器,它就不会改变逻辑,例如。 entityManager.createNamedQuery("YourEntity.findById").setParameter(1, id).getSingleResult() 因为EntityManager::find 不会抛出NoResultException

    希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-09
      • 1970-01-01
      • 2011-02-15
      • 1970-01-01
      相关资源
      最近更新 更多