当前位置: 代码迷 >> Java Web开发 >> [求助]Hibernate的session.saveOrUpdate()保存失败.杂办?
  详细解决方案

[求助]Hibernate的session.saveOrUpdate()保存失败.杂办?

热度:471   发布时间:2006-12-17 00:39:02.0
[求助]Hibernate的session.saveOrUpdate()保存失败.杂办?

用ChinatCityDAO.java 继承 AbstractADO.java执行一个数据的插入操作。

1.第一次执行insert操作成功.

控制台输出如下:

ID : null City : shanghai
Hibernate: insert into china_city (CityName, CityId) values (?, ?)

mysql> select * from china_city;
+----------------------------------+----------+
| CityId | CityName |
+----------------------------------+----------+
| 402881e70f8a5bc9010f8a5bcf720001 | shanghai |
+----------------------------------+----------+

2. 继续执行insert后失败。发现Hibernate执行了一个Update操作,而数据包含了上一个动作的ID。不明白为什么。

打印的HQL语句为

ID : 402881e70f8a5bc9010f8a5bcf720001 City : shanghai2
Hibernate: update china_city set CityName=? where CityId=?

AbstractADO.java类

protected void saveOrUpdate(Object obj) {
try {
startOperation();
session.saveOrUpdate(obj);
// session.flush();
tx.commit();
} catch (HibernateException e) {
handleException(e);
} finally {
HibernateFactory.close(session);
}
}


ChinatCityDAO.java

public boolean insert(ChinaCity city){
System.out.println("ID : " +city.getCityId() + " City : "+city.getCityName());
saveOrUpdate(city);
return true;
}

搜索更多相关主题的帖子: session  Hibernate  saveOrUpdate  保存  

----------------解决方案--------------------------------------------------------
  相关解决方案