public Boolean addGoodsCity(String goods, String city) {
// TODO Auto-generated method stub
Session session = HibernateSessionFactory.getSession();
Transaction t = session.beginTransaction();
String a[] = goods.split(",");
WorldonlineGoods wg = new WorldonlineGoods();
wg.setName(a[0]);
wg.setWeight(Integer.valueOf(a[1]));
wg.setPrice(Integer.valueOf(a[2]));
wg.setUnit(a[3]);
wg.setImage(a[4]);
wg.setDes(a[5]); String hql = "select id from WorldonlineGoods where name=:gods";
List list = session.createQuery(hql).setString("gods",
wg.getName()).list();
if (list.isEmpty()) {
session.save(wg);
t.commit();
//session.clear();
WorldOnlineGoodsPort wgp= new WorldOnlineGoodsPort();
String hql1 = "select id from WorldonlineGoods where name=:gods";
List list1 = session.createQuery(hql1).setString("gods",wg.getName()).list();
if(!list1.isEmpty()){
wgp.setGoodsid((Integer)list1.get(0));
wgp.setPortcityid(Long.parseLong(city));
session.save(wgp);
}
t.commit();
session.close();
return true;
}
return false;
}报错:严重: Servlet.service() for servlet action threw exception
org.hibernate.TransactionException: Transaction not successfully started
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:100)//数据传过来了 并且第一个commit()已经执行成功 可是到第二个 就报错 我想知道 我具体哪里的问题 是否 hibernate 不支持一个方法里有两个提交 可是 如果这样的话 我还不知道怎么实现功能 那位大哥 帮帮忙 谢谢 在线等
// TODO Auto-generated method stub
Session session = HibernateSessionFactory.getSession();
Transaction t = session.beginTransaction();
String a[] = goods.split(",");
WorldonlineGoods wg = new WorldonlineGoods();
wg.setName(a[0]);
wg.setWeight(Integer.valueOf(a[1]));
wg.setPrice(Integer.valueOf(a[2]));
wg.setUnit(a[3]);
wg.setImage(a[4]);
wg.setDes(a[5]); String hql = "select id from WorldonlineGoods where name=:gods";
List list = session.createQuery(hql).setString("gods",
wg.getName()).list();
if (list.isEmpty()) {
session.save(wg);
t.commit();
//session.clear();
WorldOnlineGoodsPort wgp= new WorldOnlineGoodsPort();
String hql1 = "select id from WorldonlineGoods where name=:gods";
List list1 = session.createQuery(hql1).setString("gods",wg.getName()).list();
if(!list1.isEmpty()){
wgp.setGoodsid((Integer)list1.get(0));
wgp.setPortcityid(Long.parseLong(city));
session.save(wgp);
}
t.commit();
session.close();
return true;
}
return false;
}报错:严重: Servlet.service() for servlet action threw exception
org.hibernate.TransactionException: Transaction not successfully started
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:100)//数据传过来了 并且第一个commit()已经执行成功 可是到第二个 就报错 我想知道 我具体哪里的问题 是否 hibernate 不支持一个方法里有两个提交 可是 如果这样的话 我还不知道怎么实现功能 那位大哥 帮帮忙 谢谢 在线等
解决方案 »
- 需要做个小插件,求帮助。
- 请教NumberFormat中的百分数问题getPercentInstance
- 不用图像可以编一个计算器吗?
- 通过http://localhost:8080调用servlet
- jstl自定义函数不支持EL语言的嵌套吗?${fn:substring(${user.describe},1,3)} 写法报错!!!为什么???
- tomcat 5.0连接池配置问题 在线等 救急
- 求有关JSTL的电子书,最好是英文原版的,见书结贴。
- 关于怎样自动生成ejb的xml描述文件的问题
- dongdongshu接分!
- 大神们:同时满足多个过滤条件的问题
- SOS!在一个用户登录后开一个线程储存其登录信息,该怎么做?
- 关于spring手动取bean实例化applicationContext的路径问题
所谓事务就是将好多操作包裹成一个原子性的,要成功都成功,只要里面一个失败就要回滚。
所以通常的做法是:try{
1.开启事务
2.所有操作
3.提交操作
}catch(){
事务回滚
}
finally{
关闭一些session
}