throws CustomException {
Session session = null;
Transaction transaction = null;
try {
session = HibernateSessionFactory.getSession();
transaction = session.beginTransaction();
//循環保存工作計劃的每條任務
for(int i=0;i<listWorkProject.size();i++){
WorkProjectVO workProjectVO = listWorkProject.get(i);
WorkProject workProject = new WorkProject();
BeanUtils.copyProperties(workProject, workProjectVO);
//空格
workProject.setRemark(Hibernate.createClob(" "));
session.save(workProject);
// 調用flush方法,強制Hibernate立即執行insert sql
session.flush();
// 通過refresh方法,強制Hibernate執行select for update
session.refresh(workProject, LockMode.UPGRADE);
// 向Clob寫入實際內容#
SerializableClob cb = (SerializableClob)workProject.getRemark();
java.sql.Clob wrapClob = cb.getWrappedClob();
if(wrapClob instanceof oracle.sql.CLOB){
oracle.sql.CLOB clob=(oracle.sql.CLOB) wrapClob;
java.io.Writer writer = clob.getCharacterOutputStream();
writer.write(workProjectVO.getRemarkStr());
writer.close();
}
session.save(workProject);
}
transaction.commit();
} catch (HibernateException e) {
sysLogger.error(e.getMessage());
if (null != transaction) {
transaction.rollback();
}
throw new CustomException(e, msgBaseHibernateDAO001);
} catch (CustomException e) {
sysLogger.error(e.getMessage());
if (null != transaction) {
transaction.rollback();
}
throw e;
} catch (Exception e) {
sysLogger.error(e.getMessage());
if (null != transaction) {
transaction.rollback();
}
throw new CustomException(e, msgBaseHibernateDAO001);
} finally {
if (null != session) {
HibernateSessionFactory.closeSession();
}
}
}