[在将EJB 2 CMP实体bean迁移到EJB 3 JPA实体时如何处理FinderException?

问题描述 投票:1回答:1

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

    public void myMethod(){

        ...

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

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

    }

现在文件是EJB 3 JPA实体,不需要将FinderException放在findFile(...)方法上

FinderException是否有替代品,所以我可以保留myMethod的业务逻辑?

jpa ejb entity cmp
1个回答
0
投票

我已经处理了一段时间。答案是肯定的,javax.persistence.NoResultException是您要寻找的。

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

希望有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.