我在我的Spring应用程序中使用Morphia和MongoDB.我在许多示例项目中看到,许多服务接口方法都抛出DataAccessException.据我所知,此异常是从各种框架类抛出的,以简化数据访问的各种实现的异常处理.
在这一点上,我猜我应该捕获Morphia引发的任何错误,并从我的服务实现中引发DataAccessException.所以我的问题是,是否应该使用使用Morphia的服务实现对该方法进行建模?也许我只是误解了这一点.
最佳答案
如果您希望您的业务逻辑能够对特定类型的DataAccessException做出反应而又不依赖于Morphia / Mongo类型,则这很有意义.
最简单的方法是编写一个实现PersistenceExceptionTranslator的类,该类知道如何将Morphia / Mongo异常转换为DataAccessException.将该类声明为Bean,如果您的DAO类使用@Repository批注,Spring会自动要求它翻译异常.
但是,如果您的业务逻辑或异常处理逻辑并不真正在意抛出哪种异常类型,那么似乎没有什么意义.