hibernate插入,修改出错

skycncomp 2005-08-18 05:08:51
在我插入,修改时如果第一次传入的数据出错,那么以后的每次都会出错?
请问是什么原因?
以下是我的保存代码:
tx = session.beginTransaction();
primaryKey = session.save(obj);
tx.commit();
//session.clear(); //如果清除缓存后就不会出错
closeSession();

给出两个配置文件:
公司为::
<class name="Corporation" table="corporation">
<id name="co_id" type="java.lang.Integer" column="co_id" unsaved-value="0">
<generator class="sequence">
<param name="sequence">Seq_coid</param>
</generator>
</id>
<property name="father_co" type="java.lang.Integer"
<one-to-one name="company" class="Company" cascade="all"/>
</class>
单位表如下::
<class name="Company" table="company">
<id name="co_id" type="java.lang.Integer" column="co_id" unsaved-value="0">
<generator class="foreign">
<param name="property">corporation</param>
</generator>
</id>
<property name="leader" type="string" column="leader"/>
<property name="tel" type="string" column="tel"/>
<one-to-one name="corporation" class="Corporation" constrained="true" cascade="all"/>
</class>
该如何修改.
...全文
192 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
skycncomp 2005-08-26
  • 打赏
  • 举报
回复
楼上的你把你的方法说的细一点吧.
没太明白.
skycncomp 2005-08-24
  • 打赏
  • 举报
回复
我也觉得是hibernate的缓存问题,上次出错时的ID还存在,所以导致上面的问题.
那有什么其它的办法解决.
各位提供一下.
bohemia 2005-08-24
  • 打赏
  • 举报
回复
ID 问题.因为两张表有关系存在.一般情况下,默认搜索和更新都会返回两个对象.如果设置为
lazy-loading 的时候,只返回一个对象,只有当需要的时候才取另外一个对象.
而且,关系使有hibernate维护的,如果更新数据,hibernate 会检查一致性.所以请确保上面的obj的正确性...和关系的设置.
skycncomp 2005-08-24
  • 打赏
  • 举报
回复
自己在顶一下.
skycncomp 2005-08-22
  • 打赏
  • 举报
回复
如果我有session.flush(),那么会出现更多的问题.
我每次都会正常的关闭session的.
fengyun1314 2005-08-22
  • 打赏
  • 举报
回复
我觉得是你的关键ID的问题,出现错误就是当你保存的时候已经发现要保存的对象(根据ID识别)在缓存中已经存在,所以出错,如果用update这个对象也许就没有什么问题了,为什么会出现这样的情况呢,是因为你的的ID没有设置好,所以你才要clear来清楚缓存中的对象,才可以执行,建议重新设置你的ID生成。
skycncomp 2005-08-22
  • 打赏
  • 举报
回复
自己顶,大家帮一下.
sevencash 2005-08-21
  • 打赏
  • 举报
回复
你上次用完SESSION没关闭吧
den_dyj 2005-08-20
  • 打赏
  • 举报
回复
你的session需要用session.flush().
skycncomp 2005-08-19
  • 打赏
  • 举报
回复
自己顶一下.大家帮一下忙.
奇伢 2005-08-19
  • 打赏
  • 举报
回复
出错提示如何?

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧