求教:Hibernate异常Could not execute JDBC batch update

a476249912 2010-06-30 09:14:46
配置文件为:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="com.aisino.tree.entity.Personinfo" table="PERSONINFO">
<id name="cid" type="string">
<column name="CID" length="50" />
<generator class="assigned" />
</id>
<property name="pid" type="string">
<column name="PID" length="50" />
</property>
<property name="name" type="string">
<column name="NAME" length="50" />
</property>
<property name="type" type="integer">
<column name="TYPE" />
</property>
<property name="isleaf" type="integer">
<column name="ISLEAF"/>
</property>
<many-to-one name="parent">
<column name="pid"/>
</many-to-one>
<set name="children" inverse="true" cascade="save-update">
<key>
<column name="pid"/>
</key>
<one-to-many class="com.aisino.tree.entity.Personinfo" />
</set>
</class>
</hibernate-mapping>

我想单独添加一条数据我就直接用session.save(Person);
然后系统给我报个错org.hibernate.exception.SQLGrammarException: Could not execute JDBC batch update。
发出的sql语句是:
Hibernate: insert into PERSONINFO (PID, NAME, TYPE, ISLEAF, pid, CID) values (?, ?, ?, ?, ?, ?)
就是pid出现重复列了,这是什么原因还是配置文件哪里有问题,好像它把parent对象也级联保存了,
但是我删除cascade配置也没用, 求教了。
(不知道大家看的懂这配置文件意思不,就是这样配置可以生成树的结构如:cid,pid)
...全文
190 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
a476249912 2010-07-05
  • 打赏
  • 举报
回复
解决了,只要把下面这个属性配置删除就可以了

<property name="pid" type="string">
<column name="PID" length="50" />
</property>

以为配置了这个

<set name="children" inverse="true" cascade="save-update">
<key>
<column name="pid"/>
</key>
<one-to-many class="com.aisino.tree.entity.Personinfo" />
</set>

那么pid就可以认为是外键
总之,很感谢各位啊
person_java 2010-06-30
  • 打赏
  • 举报
回复
把你java代码穿上来!!
道光2008 2010-06-30
  • 打赏
  • 举报
回复
<set name="children" inverse="false" cascade="save-update">看看,

不行,请贴出你的批处理程序
Leson_Yin 2010-06-30
  • 打赏
  • 举报
回复
你数据库用的是什么?
oracle吗?

<id name="cid" type="string">
<column name="CID" length="50" />
<generator class="native" />//native试试。
</id>

我的库是oracle 也报这个错啊。呵呵,借地期待高手。

67,512

社区成员

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

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