Hibernate 事务方法保存clob类型数据

Hibernate 保存clob类型数据 以及关系到事务所出现的问题(写此文以防备忘)

说明:

方法A():普通的方法未实现事务;

方法B();普通方法;

方法doA();对A方法增加事务支持

方法doB():对方法B()增加事务支持

方法ntB();对方法B()声明一个新的事物

使用方式一:

A()

{

   doB();

}

doB(){

    //方法中保存一个Clob字段到数据库

}

按照上述调用会出现错误:Active Spring transaction synchronization or active JTA transaction with specified [javax.transaction.TransactionManager] required

使用方式二:

doA(){

    ntB(){

        //方法中保存一个Clob字段到数据库

     }

}

使用方式2可以正确执行.

结论: 通过方式二,若doA()异常回滚,ntB()不会受到影响.

另外:把大字段保存于clob类型,在数据库表反转后需要在xxx.hbm.xml中设置对应字段的type="org.springframework.orm.hibernate3.support.ClobStringType"

原文地址:https://www.cnblogs.com/shihujiang/p/2396379.html