Java Hibernate调用即使在引发异常后仍保存

Java Hibernate调用即使在引发异常后仍保存,java,hibernate,spring-jdbc,spring-orm,Java,Hibernate,Spring Jdbc,Spring Orm,我在我的项目中有以下代码。第4行抛出异常,但仍保存我的产品详细信息。我很难理解为什么即使在抛出异常后它仍保存产品细节 class Product{ @Transactional addDetails(){ try{ } catch (Exception e) { throw new Exception("Details dont match") //Line 4 } productDAO.

我在我的项目中有以下代码。第4行抛出异常,但仍保存我的产品详细信息。我很难理解为什么即使在抛出异常后它仍保存产品细节

class Product{
@Transactional
    addDetails(){
        try{
        }
        catch (Exception e) {
           throw new Exception("Details dont match") //Line 4
        }
       productDAO.save(productDetails) 
       addAdditionalDetails(productDetails)
    }
   }

class ProductDAO {
   @Transactional
   public void save(Product productDetails){
       entitiyManager.merge(productDetails)
   }
}

From:在默认配置中,Spring框架的事务基础结构代码仅在运行时未检查异常(emphasis mine)的情况下标记要回滚的事务。好的,您正在抛出一个已检查异常,并且您希望您的更改不会被保存。更改将被保存,因为只有在抛出运行时未选中的异常时,Spring才会回滚更改。否。运行时异常是扩展。。。运行时异常。这是最基本的东西: