Java Spring事务性DAO,异常被吞没

Java Spring事务性DAO,异常被吞没,java,spring,aop,dao,Java,Spring,Aop,Dao,我使用Hibernate作为ORM,我的DAO用@Repository注释 我已经这样配置了AOP建议 <tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="save*" propagation="REQUIRED" /> <tx:method name="edit*"

我使用Hibernate作为ORM,我的DAO用
@Repository
注释

我已经这样配置了AOP建议

<tx:advice id="txAdvice" transaction-manager="transactionManager">
    <tx:attributes>
        <tx:method name="save*" propagation="REQUIRED" />
        <tx:method name="edit*" propagation="REQUIRED" />
        <tx:method name="*" read-only="true" />
    </tx:attributes>
</tx:advice>

它们工作得很好,只是如果在这些方法中发生任何sql异常,它们不会被捕获,因此不会被打印!我猜是因为事务在执行方法后提交,但我不确定

我该如何处理它呢?

看一看。它建议扩展SimpleMappingExceptionResolver

public class LoggingExceptionResolver extends SimpleMappingExceptionResolver {
private Logger logger = LoggerFactory.getLogger(LoggingExceptionResolver.class);

@Override
protected void logException(Exception ex, HttpServletRequest request) {
    this.logger.warn(buildLogMessage(ex, request), ex);
}

你确定你在什么地方没有try/catch吗?为了更好的用户体验,我在上下文中配置了异常解析器。org.springframework.web.servlet.handler.SimpleMappingExceptionResolver捕获所有异常并重定向到特定视图。我移除了它,现在它捕捉并打印HibernateeExceptions,好消息。但我仍然想保留异常解析程序,您有什么想法可以在控制台中打印异常吗?谢谢你给我这个主意。