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