很奇怪的一个hibernate问题 order 是sql的关键字,你要小心哦! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 哦,谢谢 java2000-net 兄,我改下看看。 把order表名改了之后还是一样的错误。我记得之前没用到hibernate的多对一关系的时候也是用order作为表名然后save(order)能够成功。这次就奇怪了,不知道是怎么回事? 你这是多的1 保存?多对一保存 主健类有个Set集合 专门放外键类的你有吗?插入数据库的话 外键类 放入主键类Set集合 直接保存主键类就行了id问题实在不行用uuid生成方式吧 .hbm.xml加inverse元素配置试试。 forhd兄,谢谢你。从错误提示看 'order (orderNumber, customer_id, id) values ('Tom_Order001', 6, default)‘外键的id我觉得是可以插进去的,不用set集合,问题是它报错order表的id我没有赋值,但是order.hbm.xml里面已经设置了id产生的方式<generator class="identity"/> id identity 改成 increment 你是不是配反了呀?呵呵!customer对应order是一对多的关系。多对一<many-to-one name="order" column="customer_id" class="Order" not-null="true" /> 一对多<set name="customer" cascade="save-update" table="Customer" inverse="false"><key column="id" /><many-to-many class="Customer" column="customer_id" /></set> 你是不是配反了呀?呵呵!customer对应order是一对多的关系。多对一<many-to-one name="order" column="customer_id" class="Order" not-null="true" /> 一对多<set name="customer" cascade="save-update" table="Customer" inverse="false"><key column="id" /><many-to-many class="Customer" column="customer_id" /></set> 感谢yojiwei 兄,order和customer是多对一的关系,在order.hbm.xml中的配置如下:<many-to-one name="customer" column="customer_id" class="Customer" not-null="true" /> 在hibernate的使用手册中它举了一个例子,product和orderItem的关系是多对一的关系,那么关于orderItem的映射关系应该是<many-to-one name="product" class="Product" column="PRODUCT_ID"/>。所以我上面的关系配置应该是正确的。谢谢你的关注。 SystemKing兄,我之前是increment的,也有这个问题,所以我改成由数据库来自动产生的identity,同样的错误,感谢你的关注和恢复。 我想你还是 show_sql = true 打印出那个完整的SQL看看吧!必要时手工执行一下。 你怎么将Session关闭了两次啊? 查询的权限控制,希望大家帮个忙 求教!用Castor生成XML的问题 面试 请教json 数组格式问题 如何使用weblogic 8.1支持struts2.0,请高手帮帮忙 关于spring连接数据库的问题? EJB在您的项目的位置 salary? 文件自动保存的问题 weblogic7的性能优化问题,回答者都有分 在myeclisp中配置SQL2000出现问题,请高手指点一下好吗????? DagagramSocket运行问题
我记得之前没用到hibernate的多对一关系的时候也是用order作为表名然后save(order)能够成功。
这次就奇怪了,不知道是怎么回事?
多对一保存 主健类有个Set集合 专门放外键类的
你有吗?
插入数据库的话 外键类 放入主键类Set集合
直接保存主键类就行了
id问题实在不行用uuid生成方式吧
forhd兄,谢谢你。从错误提示看 'order (orderNumber, customer_id, id) values ('Tom_Order001', 6, default)‘
外键的id我觉得是可以插进去的,不用set集合,问题是它报错order表的id我没有赋值,但是order.hbm.xml里面已经设置了id产生的方式<generator class="identity"/>
多对一
<many-to-one
name="order"
column="customer_id"
class="Order"
not-null="true"
/>
一对多
<set name="customer" cascade="save-update" table="Customer" inverse="false">
<key column="id" />
<many-to-many class="Customer" column="customer_id" />
</set>
多对一
<many-to-one
name="order"
column="customer_id"
class="Order"
not-null="true"
/>
一对多
<set name="customer" cascade="save-update" table="Customer" inverse="false">
<key column="id" />
<many-to-many class="Customer" column="customer_id" />
</set>
name="customer"
column="customer_id"
class="Customer"
not-null="true"
/>
在hibernate的使用手册中它举了一个例子,product和orderItem的关系是多对一的关系,那么关于orderItem的映射关系应该是<many-to-one name="product" class="Product" column="PRODUCT_ID"/>。
所以我上面的关系配置应该是正确的。谢谢你的关注。