67,512
社区成员
发帖
与我相关
我的任务
分享
public void addDetail(List<TXtzhbgsqdmx> detail,TXtzhbgsqd sqd) {
// TODO Auto-generated method stub
for (TXtzhbgsqdmx xtzhbgsqdmx : detail) {
xtzhbgsqdmx.setMid(sqd.getRowId());
xtzhbgsqdmxDAO.save(xtzhbgsqdmx);
}
}
public void addXtzhbgsqd(TSqdbt tableHead, TXtzhbgsqd sqd,
List<TXtzhbgsqdmx> detail) {
try {
xtzhbgsqdDAO.save(sqd);
System.out.println(sqd.getRowId());
//保存申请单详情表
addDetail(detail,sqd);
//将已经申请单的rowid 给申请单表头
tableHead.setSqdid(sqd.getRowId());
//创建并且保存此申请单的流程实例 流程定义示例
lcService.addLcdysl(tableHead);
//保存申请单表头
sqdbtDAO.save(tableHead);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
//保存申请单
}
以下是myeclipse生成的代码
TXtzhbgsqdmx save方法
public void save(TXtzhbgsqdmx transientInstance) {
log.debug("saving TZhbgsqd_detail instance");
try {
getHibernateTemplate().save(transientInstance);
log.debug("save successful");
} catch (RuntimeException re) {
log.error("save failed", re);
throw re;
}
}
TSqdbt 的save 方法
public void save(TSqdbt transientInstance) {
log.debug("saving TSqdbt instance");
try {
getHibernateTemplate().save(transientInstance);
log.debug("save successful");
} catch (RuntimeException re) {
re.printStackTrace();
log.error("save failed", re);
throw re;
}
}
TXtzhbgsqd 的save方法(本来也是getHibernateTemplate().save 的,后来改成手写的事物,下面看运行结果)
public void save(TXtzhbgsqd transientInstance) {
log.debug("saving TZhbgsqd_main instance");
try {
Session session=getSession();
Transaction trans=session.getTransaction();
trans.begin();
session.save(transientInstance);
trans.commit();
session.close();
log.debug("save successful");
} catch (RuntimeException re) {
log.error("save failed", re);
throw re;
}
}
运行结果
xtzhbgsqdDAO.save(sqd); //执行完成后对应数据库没有数据,空空地……
System.out.println(sqd.getRowId());// rowid是数据库的自增列,插入之前是没有值的,
现在有值了,现在已经是40多了,
每次执行xtzhbgsqdDAO.save(sqd); sqd的rowId都会自增一,内存执行的?
服务器重启,关电脑,重新部署项目,依然继续自增(继续上次的数字),
凌乱…… 但是数据库没有数据,自增列哪里来的????!!
//保存申请单详情表
addDetail(detail,sqd);//正常执行 数据库没有数据
//将已经申请单的rowid 给申请单表头
tableHead.setSqdid(sqd.getRowId()); //就是前面诡异的自增的rowid 有值的,一直自增
//创建并且保存此申请单的流程实例 流程定义示例
lcService.addLcdysl(tableHead); //这个先不管了,保存流程的
//保存申请单表头
sqdbtDAO.save(tableHead); //数据库里面的表头表有数据……,每次都能保存成功。是什么原因其他的save不能保存数据啊 ,但是自增列却一直自增……